准备数据
CREATE TABLE GradesTable (Name VARCHAR2(6), Languages VARCHAR2(6),Mathematics VARCHAR2(6), English VARCHAR2(6) );
insert into GradesTable (Name,Languages,Mathematics,English) values('李明','88','67','98');
insert into GradesTable (Name,Languages,Mathematics,English) values('阿珂','88','67','98');
insert into GradesTable (Name,Languages,Mathematics,English) values('唐三','88','67','98');
1、substr
截取字符串
(1)语法:SUBSTR(string,start, [length])
(2)含义
-
string:表示源字符串,即要截取的字符串
-
start:开始位置,从第1位置查找,如果start是负数,则从字符串末尾开始
-
length:可选项,表示截取字符串长度
(3)举例
截取name为李明的第一位
select substr(name,0,1) from GradesTable where name='李明';--执行结果:李
2、instr
返回子字符串在源字符串中的位置
(1)语法:INSTR(string,child_string,[start],[show_time])
(2)含义
- string:表示源字符串。
- child_string:子字符串,即要查找的字符串。
- start:可选项,开始位置,默认从1开始。如果为负数,则从右向左检索。
- show_time:可选项,表示子字符串第几次出现在源字符串当中,默认第1次,负数则报错。
(3)举例
从源字符串’abcdefghijklmnj’中第1个字符开始查找子字符串’j’第2次出现的位置
SELECT INSTR('abcdefghijklmnj', 'j', 1, 2) FROM dual --返回15