1.常用的orcale函数【字符函数——返回字符值】

一些常用的orcale函数【字符函数——返回字符值】
【chr,concat,initcap,lower,upper,nls_initcap,nls_lower,nls_upper,
replace,rpad/lpad,trim/rtrim/ltrim,soundex,substr/substrb,translate】
 

<1>CHR
语法:chr(x)
功能:给出整数X,返回对应的ASCII码字符。CHR和ASCII是一对反函数。
SQL> select chr(47083) feng,chr(65),ASCII('冯') chr65 from dual;
FENG CHR(65)      CHR65
---- ------- ----------
冯   A            47083

 <2>concat
语法:CONCAT(string1,string2)
功能:连接两个字符串
SQL> select concat('0571-','66668888')||'转8850'  连接 from dual;
连接
-------------------
0571-66668888转8850

 <3>initcap
语法:INITCAP(string)
功能:返回字符首字母大写,其余小写。
SQL> select initcap('feng MING xIang') 首字母大写 from dual;
首字母大写
---------------
Feng Ming Xiang

 <4>lower
语法:LOWER(string)
功能:所以字母小写
SQL> select lower('FENG MING XIANG') 小写 from dual;
小写
---------------
feng ming xiang

 <5>upper
语法:UPPER(string)
功能:所有字母大写。
(不是字母的字符不变.如果string是CHAR数据类型的,那么结果也是CHAR类型的。
如果string是VARCHAR2类型的,那么结果也是VARCHAR2类型的).
SQL> select upper('feng miang xiang') 大写 from dual;
大写
----------------
FENG MIANG XIANG

 <6>NLS_INITCAP
语法:NLS_INITCAP(string[,nlsparams])
功能:返回字符串每个单词第一个字母大写而单词中的其他字母小写的string,nlsparams
指定了不同于该会话缺省值的不同排序序列。如果不指定参数,则功能和INITCAP相同。
Nlsparams可以使用的形式是:'NLS_SORT=sort' 这里sort制订了一个语言排序序列。
按照笔划排序'NLS_SORT=SCHINESE_STROKE_M'
按照部首排序'NLS_SORT=SCHINESE_RADICAL_M'
按照拼音排序'NLS_SORT=SCHINESE_PINYIN_M'

 <7>NLS_LOWER
语法:NLS_LOWER(string[,nlsparams])
功能:返回字符串中的所有字母都是小写形式的string。不是字母的字符不变。
Nlsparams参数的形式与用途和NLS_INITCAP中的nlsparams参数是相同的。
如果nlsparams没有被包含,那么NLS_LOWER所作的处理和LOWER相同。

 <8>NLS_UPPER
语法:nls_upper(string[,nlsparams])
功能:返回字符串中的所有字母都是大写的形式的string。不是字母的字符不变。
nlsparams参数的形式与用途和NLS_INITCAP中的相同。
如果没有设定参数,则NLS_UPPER功能和UPPER相同。
使用位置:过程性语句和SQL语句。

<9>REPLACE
语法:REPLACE(string,search_str[,replace_str])
功能:把string中的所有的子字符串search_str用可选的replace_str替换,
如果没有指定replace_str,所有的string中的子字符串search_str都将被删除。
REPLACE是TRANSLATE所提供的功能的一个子集。
REPLACE('string','s1','s2')
string 希望被替换的字符或变量
s1     被替换的字符串
s2     要替换的字符串
SQL> select replace('he love you','he','I') 替换 from dual;
替换
----------
I love you

<10>LPAD/RPAD
语法:LPAD/RPAD(string1,x[,string2])
功能:返回在X字符长度的位置上插入一个string2中的字符的string1。
如果string2的长度要比X字符少,就按照需要进行复制。
如果string2多于X字符,则仅string1前面的X各字符被使用。
如果没有指定string2,那么使用空格进行填充。X是使用显示长度可以比字符串的实际长度要长。
RPAD的行为方式与LPAD很相似,除了它是在右边而不是在左边进行填充。
RPAD和LPAD(粘贴字符)
RPAD  在列的右边粘贴字符
LPAD  在列的左边粘贴字符
SQL> SELECT distinct aah02||lpad(aah03,2,'0')  FROM aah_file;
AAH02||LPAD(AAH03,2,'0')
--------------------------------------------
201205
201206
201207
不够字符则用0来填满

 <11>TRIM/LTRIM/RTRIM
语法:TRIM/LTRIM/RTRIM(string1,[string2])
功能:返回删除从左/右边算起出现在string2中的字符的string1。
String2被缺省设置为单个的空格。
数据库将扫描string1,从最左/右边开始。
当遇到不在string2中的第一个字符,结果就被返回了。
LTRIM的行为方式与RTRIM很相似。
trim 去掉前后空格
LTRIM和RTRIM
LTRIM  删除左边出现的字符串
RTRIM  删除右边出现的字符串
SQL> select ltrim(rtrim('   HELLO good morning   ',' '),' ') 删除空格 from dual;
删除空格
-------------
HELLO good morning

<12>SOUNDEX
语法:SOUNDEX(string)
功能:返回string的声音表示形式.这对于比较两个拼写不同但是发音类似的单词而言很有帮助.
SOUNDEX 返回一个与给定的字符串读音相同的字符串
SQL> create table table1(xm varchar(8));
SQL> insert into table1 values('weather');
SQL> insert into table1 values('wether');
SQL> insert into table1 values('gao');
SQL> select xm from table1 where soundex(xm)=soundex('weather');
XM
--------
weather
wether

 <13>SUBSTR
语法:SUBSTR(string,a[,b])/SUBSTRB(string,a[,b])
功能:截取字符串,从第a个开始取b个
substr,substrb均为字符串截取函数,都带有三个参数,
第1个参数为所要截取的字符串,第2个参数为strart(索引均从1开始),第3个参数为length。
substr是按照字来算的,而substrb()是按照字节来算的

SQL> select substr('今天是个好日子',3,5) from dual;
SUBSTR('今天是个好日子',3,5)
----------------------------
是个好日子

SQL> select substrb('今天是个好日子',3,5) from dual;
SUBSTRB('今天是个好日子',3,5)
-----------------------------
天是

 <14>TRANSLATE
语法:TRANSLATE(string,from_str,to_str)
功能:返回将所出现的from_str中的每个字符替换为to_str中的相应字符以后的string.
TRANSLATE是REPLACE所提供的功能的一个超集.
如果from_str比to_str长,那么在from_str中而不在to_str中而外的字符将从string中被删除,因为它们没有相应的替换字符.
to_str不能为空.Oracle把空字符串认为是NULL,并且如果TRANSLATE中的任何参数为NULL,那么结果也是NULL.
TRIM('s' from 'string')
LEADING   剪掉前面的字符
TRAILING  剪掉后面的字符
如果不指定,默认为空格符
SQL> select translate('abcdefga','abc','wo') 返回值 from dual;
返回值
-------
wodefgw
分析:
该语句要将'abcdefga'中的'abc'转换为'wo',
由于'abc'中'a'对应'wo'中的'w',
故将'abcdefga'中的'a'全部转换成'w';
而'abc'中'b'对应'wo'中的'o',
故将'abcdefga'中的'b'全部转换成'o';
'abc'中的'c'在'wo'中没有与之对应的字符,
故将'abcdefga'中的'c'全部删除;

 

*************************************************************************************************************************************

大笑大笑==== Till good is better, but better best

大笑大笑====“我的努力不会停止,敬请期待吧!”My trying hard will go on!Please wait and see!

************************************************************************************************************************************

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值