initcap(st) 返回st將每個單詞的首字母大寫,所有其他字母小寫
lower(st) 返回st將每個單詞的字母全部小寫
upper(st) 返回st將每個單詞的字母全部大寫
concat(st1,st2) 返回st為st2接st1的末尾(可用操作符"||")
lpad(st1,n[,st2]) 返回右對齊的st,st為在st1的左邊用st2填充直至長度為n,st2的缺省為空格
rpad(st1,n[,st2]) 返回左對齊的st,st為在st1的右邊用st2填充直至長度為n,st2的缺省為空格
ltrim(st[,set]) 返回st,st為從左邊刪除set中字符直到第一個不是set中的字符。缺省時,指的是空格
rtrim(st[,set]) 返回st,st為從右邊刪除set中字符直到第一個不是set中的字符。缺省時,指的是空格
replace(st,search_st[,replace_st]) 將每次在st中出現(xiàn)的search_st用replace_st替換,返回一個st。缺省時,刪除search_st
substr(st,m[,n]) n=返回st串的子串,從m位置開始,取n個字符長。缺省時,一直返回到st末端
length(st) 數(shù)值,返回st中的字符數(shù)
instr(st1,st2[,m[,n]]) 數(shù)值,返回st1從第m字符開始,st2第n次出現(xiàn)的位置,m及n的缺省值為1
例:
1.
select initcap('THOMAS'),initcap('thomas') from test;
initca initca
------ ------
Thomas Thomas
2.
select concat('abc','def') "first" from test;
first
-----
abcdef
3.
select 'abc'||' '||'def' "first" from test;
first
-----
abc def
4.
select lpad(name,10),rpad(name,5,'*') from test;
lpad(name,10) rpad(name,5,'*')
------------ ----------------
mmx mmx**
abcdef abcde
5.
去掉地址字段末端的點(diǎn)及單詞st和rd
select rtrim(address,'. st rd') from test
6.
select name,replace(name,'a','*') from test;
name replace(name,'a','*')
---- ---------------------
great gre*t
7.
select substr('archibald bearisol',6,9) a,substr('archibald bearisol',11) b from test;
a b
------- -------
bald bear bearisol
8.
select name,instr(name,' ') a,instr(name,' ',1,2) b from test;
name a b
------- -------- ---------
li lei 3 0
l i l 2 4
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
轉(zhuǎn)換函數(shù):
nvl(m,n) 如果m值為null,返回n,否則返回m
to_char(m[,fmt]) m從一個數(shù)值轉(zhuǎn)換為指定格式的字符串fmt缺省時,fmt值的寬度正好能容納所有的有效數(shù)字
to_number(st[,fmt]) st從字符型數(shù)據(jù)轉(zhuǎn)換成按指定格式的數(shù)值,缺省時數(shù)值格式串的大小正好為整個數(shù)
附:
to_char()函數(shù)的格式:
---------------------------------
符號 說明
---------------------------------
9 每個9代表結(jié)果中的一位數(shù)字
0 代表要顯示的先導(dǎo)0
$ 美元符號打印在數(shù)的左邊
L 任意的當(dāng)?shù)刎泿欧?
. 打印十進(jìn)制的小數(shù)點(diǎn)
, 打印代表千分位的逗號
---------------------------------
例:
1.
select to_number('123.45')+to_number('234.56') form test;
to_number('123.45')+to_number('234.56')
----------------------------------------
358.01
2.
select to_char(987654321) from test;
to_char(987654321)
------------------
987654321
3.
select to_char(123,'$9,999,999') a,to_char(54321,'$9,999,999') b,to_char(9874321,'$9,999,999') c from test;
a b c
------- ---------- -----------
$123 $54,321 $9,874,321
4.
select to_char(1234.1234,'999,999.999') a,to_char(0.4567,'999,999.999') b,to_char(1.1,'999,999.999') from test;
a b c
--------- ---------- ------------
1,234.123 .457 1.100