您的位置:首页 > 数据库 > Oracle

Oracle的字符处理函数简单介绍

2011-02-11 16:01 489 查看
1)Initcap()函数是ORACLE的一个字符处理函数,主要作用就是将原字符串转换成首字母大写的新字符串,但是有一点,它也接受数值型参数,但是结果依旧是数值,所以也没有什么作用。

例:

select initcap('abcd ehjkl') as res from dual;

结果:



注意一点,这个函数会把所有的字符串型参数全都变成每个单词首字母大写,即使其参数全部是大写,如:

select initcap('ABCDE ABCDE ') from dual;



2)Upper()函数也是oracle的字符串处理函数,就是将参数全都变为大写

select upper('abcde') as res from dual;

结果:



3)Lower()函数是和upper函数相反的,就是将所有的参数转为小写

select lower('ABCDE') as res from dual;

结果:



4)Concat()函数,是用于字符串相加的,如:
select concat('a','b') as res from dual;
结果:



和下面的sql语句执行的效果一样:
select 'a'||'b' as res from dual;
注意,concat()函数的参数个数是有限制的,只能有两个,但是两个参数的长度可长可短,如:
select concat('agh','ffhd','gdsf') as res from dual;
结果:



但是字符串长度可以加长,如:
select concat('aghfsdafffffffgfdg23334fff','ffhdetghtyhtr56yytrygdsf') as res from dual;
结果:



5)Length()函数,这个函数很简单,就是计算传入的参数的长度,如:
select length('dsafffffffffff') as res from dual;
结果:



6)Replace()函数,是做字符串替换处理的,就是将制定的原字符串值替换成新的要改变的值,如:

select replace('iris','s',2) as res from dual;
这个函数有三个参数,第一个参数是原来的对象,第二个参数是被替换的值,第三个参数是新的替换成的值,第三个参数可以是数字,也可以是字符串
结果:



7)Substr()函数是截取字符串用的,用法如下:
Substr( string, start_position, [ length ] ),第一个参数是传入的字符串,第二个参数是截取开始的位置,第三个参数是截取的长度,即从开始截取位置开始算起,一共要截取多少个字符,如:
select substr('this is a test',2,4) as res from dual;
结果是:



这就是从第二个位置开始,即h开始,共截取4个字符,即his,还有后面的空格,所以结果如上!

select substr('thisisatest',-4,3) as res from dual;
结果是:



如果开始位置是负数,就表示是从后面开始算,这个就是从倒数第四个字母t开始截取3个,正好是tes;
select substr('this is a test',-5) as res from dual;
结果是:



这种情况下只有两个参数,就表示截取字符串从开始位置算起以后的所有的字符串,所以是上面结果!

8)Instr()函数,这个函数是用来查找字符串出现的位置用的,格式如下:
instr(string, substring, position, occurrence),其中第一个参数就是传入的字符串,第二个参数是用于查找的字符串对象,第三个参数是从第几个位置开始查找,第四个参数是第几次出现,如果没有第四个参数,默认是查找第一次出现的!如:
select instr('thisisiris','i',4,1) as res from dual;
结果是:



这个语句的意思就是要从第四个位置开始查找i这个字符对象第一次在thisisiris这个字符串里面出现的位置,下面的语句结果和上面的是一样的:

select instr('thisisiris','i',4) as res from dual;

结果:



又如下面:
select instr('thisisirissoft','i',2,3) as res from dual;
结果是:



这个语句的意思就是要在'thisisirissoft‘这个字符串里面从第二个字符开始查找字母i第三次出现的位置,结果如上面所示!
又如:
select instr('thisisirissoft','s',-1,2) as res from dual;
结果是:



这句话的意思就是从倒数第一个字符串开始查找第二次出现s这个字母的位置,结果如上所示!

9)Lpad()和Rpad函数就是填充特殊字符用的,格式如下:
Lpad(String a,int length,String addString)/Rpad(String a,int length,String addString)
第一个参数是传入的字符串,第二个参数就是要返回的字符串的长度,第三个参数就是要添加的字符

Lpad()表示如果传入的字符串没有制定的字符串长度那么长,那么就在这个传入的字符串的左侧添加后面指定的字符串直到满足要求的字符串长度为止,二Rpad则相反,从传入的字符串的右边开始添加特定字符对象,直到满足条件!
如:
select lpad('thisis',10,'w') as res from dual;
结果就是:



又如:
select rpad('this',8,'g') as res from dual;
结果是:



又如:
select rpad('this',3,'g') as res from dual;
这种情况下原参数的长度比指定长度还要短,则会从第一个位数开始截取所需要的长度,所以结果就是:



10)Trim()函数是过滤首尾空格的,如:
select trim(' this is ') as res from dual;
结果是:



以上这些函数是在Oracle里面用得比较频繁的字符处理函数,是我在学习Oracle的过程中的一些简单理解,如有不当之处,敬请指教!
同时也欢迎加入本人群一起交流:144704532
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: