oracle常用函数二:字符函数

来源:互联网 发布:linux 物理内存管理 编辑:程序博客网 时间:2024/05/18 01:00

1,concat(str1,str2) 连接字符串str1和字符串str2,返回连接后的字符串,相当于‘||’

SQL> select concat('god ','bless u'),'god '||'bless u' from dual;CONCAT('GOD','BLESSU') 'GOD'||'BLESSU'---------------------- ----------------------god bless u            god bless u

2,initcap(str1) 将str1字符串中每个单词的第一个字母变为大写,其余的变为小写

SQL> select initcap('gOD bleSS u') from dual;INITCAP('GODBLESSU')----------------------God Bless U

3,instr(str1,str2[,m[,n]] 从str1字符串中查找str2字符串的出现位置

m:从str1字符串的那个字符开始查找,默认为1,如果为负数,则从str1右数第|m|个字符开始查找(正负只影响查找开始位置,无论正负都是从左向右查找)

n:str2字符串出现次数,默认为第1次出现

SQL> select instr('ab34567ab','ab') from dual;INSTR('AB34567AB','AB')-----------------------                      1SQL> select instr('ab34567ab','ab',7) from dual;INSTR('AB34567AB','AB',7)-------------------------                        8SQL> select instr('ab34567ab','ab',1,2) from dual;INSTR('AB34567AB','AB',1,2)---------------------------                          8SQL> select instr('1234567ab','ab',-3) from dual;INSTR('1234567AB','AB',-3)--------------------------                         0SQL> select instr('1234567ab','ab',-2) from dual;INSTR('1234567AB','AB',-2)--------------------------                         8

4,instrb(str1,str2[,m[,n]]) 和instr函数相同,只不过返回的为字节位置,只有在使用多字节字符集时返回结果才会与instr不同

5,substr(str,m[,n]) 根据m和n截取str字符串并将截取的字符串返回

m:从哪个字符开始,负数即为从右往左第|m|个字符开始,n:截取的字符个数,默认为从第m个字符开始至字符串末尾

SQL> select substr('abcdef',2) from dual;SUBSTR('AB----------bcdefSQL> select substr('abcdef',-2) from dual;SUBS----efSQL> select substr('abcdef',2,3) from dual;SUBSTR------bcd

6,substrb(str,m[,n]) 同substr函数,只不过m和n都是指字节而不是字符,只有在使用多字节字符集时返回结果才会与substr不同

7,length(str) 返回str字符串的字符长度

SQL> select length('人民') from dual;LENGTH('人民')--------------             2

8,lengthb(str) 与length函数相同,只顾返回的为字符串的字节长度,只有在使用多字节字符集时返回结果才会与length不同

SQL> select lengthb('人民') from dual;LENGTHB('人民')---------------              6

9,lower(str) 将字符串所有字符转为小写

SQL> select lower('AAss') from dual;LOWER('A--------aassSQL> select lower('人民') from dual;LOWER('人民'------------人民

10,upper(str) 同lower,只不过是将字符串的所有字符转为大写

11,lpad(str1,n[,str2]) 使用空格(如果str2存在,则使用str2)在str1字符串左侧填充,直到str1的长度达到n

SQL> select lpad('aa',5) from dual;LPAD('AA',----------   aaSQL>  select lpad('aa',5,'ss') from dual;LPAD('AA',----------sssaa

12,rpad(str1,n[,str2]) 同lpad函数,只不过rpad是从右侧填充

13,ltrim(str1[,str2]) 从字符串str1左边删除指定字符,默认为空格,如果str2存在,则从str1左边删除str2中存在的字符,遇到str2中不存在的字符删除结束

SQL> select ltrim('!@awcd','w@!') from dual;LTRIM('!--------awcd

14,rtrim(str1[,str2]) 同ltrim,只不过是rtrim是从右侧删除

15,trim([ leading | trailing | both ][ trim_char from ] str1) 删除掉字符串前后的空格(默认),或其他字符

leding:左边,trailing:右边,both:2边

SQL> select trim(leading '$' from '$12345$') from dual;TRIM(LEADING------------12345$

16,replace(str1,str2[,str3]) 在str1中搜索str2字符串,如果str3存在,则使用str3替代str2,否则删除str2

SQL> select replace('abcdefg','abc') from dual;REPLACE(--------defgSQL> select replace('abcdefg','abc','cba') from dual;REPLACE('ABCDE--------------cbadefg


 

原创粉丝点击