您的位置:首页 > 博客中心 > 数据库 >

Oracle 常用函数之字符函数

时间:2022-03-14 04:39

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、

热门排行

今日推荐

热门手游