您的位置:首页 > 数据库

SQL 常用字符串处理函数

2016-09-29 15:00 549 查看
1. substr函数,返回字符串中指定起始位置和长度的字符串

语法:substr( string, start_position, [length] )

substr(‘源字符串’, 开始位置, 长度)

长度为可选参数

select SUBSTR('abcdefg',0) from dual     --abcdefg
select SUBSTR('abcdefg',-0) from dual    --abcdefg
select SUBSTR('abcdefg',3) from dual     --cdefg
select SUBSTR('abcdefg',-3) from dual    --efg
select SUBSTR('abcdefg',7) from dual     --g

select SUBSTR('abcdefg',3,3) from dual      --cde
select SUBSTR('abcdefg',3,10) from dual     --cdefg
select SUBSTR('abcdefg',10,3) from dual     --null
select SUBSTR('abcdefg',-3,3) from dual     --efg
select SUBSTR('abcdefg',-3,10) from dual    --efg


2. instr函数,在一个字符串中查找指定的字符,返回被查找到的指定的字符的位置

语法:INSTR(sourceString,destString,[start],[appearPosition])

INSTR(‘源字符串’ , ‘目标字符串’ ,’开始位置’,’第几次出现’)

sourceString: 代表源字符串;

destString: 代表要从源字符串中查找的子串;

start: 代表查找的开始位置,这个参数可选的,默认为1;

appearPosition: 代表想从源字符中查找出第几次出现

destString: 这个参数也是可选的, 默认为1

如果start的值为负数,则代表从右往左进行查找,但是位置数据仍然从左向右计算。

返回值为:查找到的字符串的位置。

select instr('abcdcba','b') from dual;          --2
select instr('abcdcba','b',3) from dual;        --6
select instr('abcdcba','b',2,2) from dual;      --6
select instr('abcdcba','b',-2,2) from dual;     --2


3. replace函数,替换指定字符串

语法:REPLACE(char, search_string, [replacement_string])

char : 等待替换的字符串

search_string : 搜索需要替换的字符串

replacement_string : 替换字符串,可选

如果replacement_string缺省或者为null,那么所有char中出现的search_string 都将被移除

如果search_string为null,那么结果就是char.

select replace('abcdef','ab','12') from dual;       --12cdef
select replace('abcdef','ab') from dual;            --cdef
select replace('abcdef',null) from dual;            --abcdef
select replace('abcdef','') from dual;              --abcdef


4. concat函数,连接字符串

语法: CONCAT(StringA,StringB)

连接两个字符串,与 || 功能相似

concat一次自能连接两个字符串,如需要连接多个需要嵌套使用,|| 可以连接多个;

select concat('Name','Annie') from dual;                --NameAnnie
select 'Name'||'Annie' from dual;                       --NameAnnie
select  concat(concat('Name',': '),'Annie') from dual;  --Name: Annie
select 'Name'||': '||'Annie' from dual;                 --Name: Annie


5. lpad函数,在字符串的左侧添加指定字符串

语法:LPAD( string, padded_length, [pad_string] )

string:准备被填充的字符串;

padded_length:填充之后的字符串长度,也就是该函数返回的字符串长度,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成从左到右的n个字符;

pad_string:填充字符串,是个可选参数,这个字符串是要粘贴到string的左边,如果该参数未指定,则用空格进行填补。

select lpad('abc',5) from dual;                 --  abc(前面有空格填补)
select lpad('abc',5,'0') from dual;         --00abc
select lpad('abcdefg',5) from dual;         --abcde
select lpad('abcdefg',5,'0') from dual; --abcde


6. rpad函数,在字符串的右侧添加指定字符串,语法同lpad

select rpad('abc',5) from dual;                 --abc  (后面有空格填补)
select rpad('abc',5,'0') from dual;         --abc00
select rpad('abcdefg',5) from dual;         --abcde
select rpad('abcdefg',5,'0') from dual; --abcde
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql oracle-字符串