分類
|
函數
|
返回值
|
示例
|
數字型
|
abs
|
取絕對值
|
|
sign
|
取符號
|
正數返回
1
,負數
-1
,
0
返回
0
|
ceil
|
向上取整
|
ceil(3.2) =4
|
floor
|
向下取整
|
floor(3.2)=3
|
round(num,ws)
|
四舍五入
|
round(5.466,2)=5.47
|
mod(n1,n2)
|
求余
|
mod(52,10) = 2
|
ascii(ch)
|
int
|
ascii('a')=97
|
chr(int)?
|
ascii
碼
|
chr(97)='a'
|
字符型
|
instr(str1,str2,pos,nth)
|
返回
str2
在
str1
中的位置
????
從第
pos
位置開始,第
nth
個符合的,漢字按一個算
|
instr('abcd','b') = 2??????????????????????????? instr('abcdabcdabcd','b',5) = 6???????? instr('abcdabcdabcd','b',5,2) =10
|
instrb(str1,str2,pos,nth)
|
與上例類似,漢字按
2
個算
|
|
substr(string,pos,length)
|
子字符串
??????????????????????????????
漢字按一個算
|
substr('abcdefg',2,1) = 'b'????????????????? substr('abcdefg',2)='bcdefg'?????????????? substr('abcdefg',-2)='fg'
|
substrb(string,pos,length)
|
與上例類似,漢字按
2
個算
|
|
length(str)
|
字符串長度
|
|
lengthb(str)
|
|
|
lpad(str1,len,str2)
|
左補
|
|
replace(str1,str2,str3)
|
字符串替換
|
replace('abccba','ab','ef')='efccba'
|
translate(str1,str2,str3)
|
str2
和
str2
按字符對應替換
|
translate('abccba','ab','ef')='efccfe'
|
upper
|
轉為大寫
|
|
lower
|
轉為小寫
|
|
last_day(rq)
|
當月最后一天
|
last_day(sysdate) = '22-MAR-2004'
|
add_months(rq date,ys number)
|
加
ys
個月
|
|
months_between
(
d1,d2
)
|
兩個日期之間相差的月數
|
|
日期型
|
decode(src, p1,v1,p2,v2 ,…,v0)
|
類似
switch…case
|
只能用于
sql
語句
|
greatest(p1,p2,...)
|
最大值
|
|
least(p1,p2,...)
|
最小值
|
|
通用
|
nvl(p1,p2)
|
如果
p1
為空則返回
p2
|
|
to_date(str,format)
|
轉為日期
|
to_date('20010101','yyyymmdd')='01-Jan-2001'
|
to_char(date,format)
|
日期轉為字符串
|
to_char(sysdate,'mm')='03'
|
to_char(num,format)
|
數字轉為字符串
|
to_char(123,'fm99990.90)='123.00'
|
to_number(str)
|
轉為數字
|
to_number('12312')=12312
|
trunc(date,format)
|
截取到
format
|
trunc(sysdate,'yyyy')= 2004.01.01
|
trunc(num,pos)
|
|
trunc(13.2362,2)=13.23
|
|
|
|