1、字符串截取
substr( string, start_position, [ length ] )
例:
select substr(‘Hello World‘, 1, 2) from dual; --返回结果为 ‘He‘ 注:从字符串第一个字符开始截取长度为2的字符串 select substr(‘Hello World‘, 0, 2) from dual; --返回结果为 ‘He‘ 注:0和1都是表示截取的开始位置为第一个字符 select substr(‘Hello World‘, -4, 3) from dual; --返回结果为 ‘orl‘ 注:负数(-i)表示截取的开始位置为字符串右端向左数第i个字符 select substr(‘Hello World‘, 2) from dual; --返回结果为 ‘ello World‘ 注:省略截取字符个数,则截取至字符串末尾 select substr(‘Hello World‘, 9, 4) from dual; --返回结果为 ‘rld‘ 注:此时截取字符个数无效 select substr(‘Hello World‘, 9, -2) from dual; --返回结果为 null 注:截取字符个数小于1时,返回值为null
2、查找子串位置
instr( string1, string2 , [start_position] , [nth_appearance ] )
例:
select instr(‘aabbaacc‘, ‘aa‘, 2, 1) from dual; --返回结果为5 注:从字符串‘aabbaacc‘第二字符开始查找第一次出现‘aa‘的位置 select instr(‘aabbaacc‘, ‘aa‘, 2, 2) from dual; --返回结果为0 注:从字符串‘aabbaacc‘第二字符开始‘aa‘只出现了一次 select instr(‘aabbaacc‘, ‘aa‘, -2, 2) from dual; --返回结果为1 注:从右向左数‘aa‘第二次出现的位置 select instr(‘aabbaacc‘, ‘aa‘, 0, 1) from dual; --返回结果为0 注:查找位置应从1开始 select instr(‘aabbaacc‘, ‘aa‘, 2) from dual; --返回结果为5 注:省略的参数为nth_appearance,默认为1 select instr(‘aabbaacc‘, ‘aa‘) from dual; --返回结果为1 注:省略的两个参数默认都为1
3、字符串替换
replace( string, search_string, [replace_string] )
例:
select replace(‘000123‘,‘0‘,‘ab‘) from dual; --返回结果为‘ababab123‘ 注:将字符串‘000123‘中的字符‘0‘替换成字符‘ab‘ select replace(‘000123‘,‘0‘) from dual; --返回结果为‘123‘ 注:省略参数replacement_string,将字符‘0‘替换为null,即删除所有字符‘0‘
4、字符串连接
concat(string1, string2) 或者 ||
例:
select concat(‘Hello ‘,‘world‘) from dual; --返回结果为‘Hello world‘ select ‘Hello ‘||‘world‘ from dual; --返回结果为‘Hello world‘
5、获取字符串长度
length(string)
例:
select length(‘ Hello ‘) from dual; --返回结果为7
6、字符串去空格
ltrim(string) rtrim(string) trim(string)
例:
select ltrim(‘ a bc ‘) s1 from dual; --返回结果为‘a bc ‘ 注:去除字符串左侧的空格 select rtrim(‘ a bc ‘) s1 from dual; --返回结果为‘ a bc‘ 注:去除字符串右侧的空格 select trim(‘ a bc ‘) s1 from dual; --返回结果为‘a bc‘ 注:去除字符串左侧和右侧的空格
7、字符串去前缀和后缀
trim([leading | trailing] trim_char from string)
例:
select trim(leading ‘0‘ from ‘0000876700‘) from dual; --返回结果为‘876700‘ 注:去除前缀 select trim(trailing ‘0‘ from ‘0000876700‘) from dual; --返回结果为‘00008767‘ 注:去除后缀 select trim(‘0‘ from ‘0000876700‘) from dual; --返回结果为‘8767‘ 注:去除前缀和后缀
8、
时间: 2024-10-11 19:15:56