首页 > 代码库 > Oracle 常用函数之字符函数

Oracle 常用函数之字符函数

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,默认为1select 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、

Oracle 常用函数之字符函数