Oracle 入面既一d函数
RPAD(column|expression, n,'string')
教材里的說明:填充字符值左、右調節到 n 字符位置的總寬度
詳細d可以甘樣理解:
判斷 ‘column|expression’ 的長度length,
如果小于n, 就用‘string' 從左邊或右邊填充到直到 length =n 為止。
如果等于n, 就不變,返回原本的參數
如果大于n,就斬掉右邊字符,直到 ‘column|expression’的length=n.? 其實就系從'column|expression', 截取前n個字符拉。
例子:
小于n的情況,? 'Jason' 長度為5哦
SQL> select lpad('Jason',12,'kkkkkkkkkkkkkkkkkkkkkkkkkk') from dual;
LPAD('JASON'
------------
kkkkkkkJason
SQL> select lpad('Jason',12,'ks') from dual;
LPAD('JASON'
------------
kskskskJason
大于n的情況
SQL> select lpad('Jasonbbbbbbbbbbbb',12,'ksssssssssssss') from dual;
LPAD('JASONB
------------
Jasonbbbbbbb
SQL> select rpad('Jasonbbbbbbbbbbbb',12,'ksssssssssssss') from dual;
RPAD('JASONB
------------
Jasonbbbbbbb
======================================================================================
INSTR(column|expression,‘string’, [,m], [n] )
教材說明:
從字符返值中回指定的字符,開始位置在 m,n字符長度 (如果 m 是負數,計數從字符值末尾開始;如果 n 被忽略,返回到串結束的所有字
符)。
高亮部分吳容易理解, 其實如果 m正數, 即系從字符第m個字符開始計, 若m系負數, 就系從字符的倒數第m個字符開始計(都是從左向右)。 若m=0 ,則m=1
例子:
SQL> select substr('Jason', 1 ,1) from dual;
S
-
J
SQL> select substr('Jason', -1 ,1) from dual;
S
-
n
SQL> select substr('Jason', -2 ,1) from dual;
S
-
o
SQL> select substr('Jason', -2 ,3) from dual;
SU
--
on
從倒數第2個字符截3個字符, 就系on了(雖然命系截取3個,但只有2
===============================================================================
ROUND(column|expression, n)
說明:
? 四舍五入列、表達式或值為 n 位小數位,或者,如果 n 被忽略,無小數位。(如果 n是負值,小數點左邊左邊的數被四舍五入)
呢個容易理解,n=2,保留2個小數位
SQL> select round(555.245,2) from dual;
ROUND(555.245,2)
----------------
????????? 555.25
SQL> select round(555.245) from dual;
ROUND(555.245)
--------------
?????????? 555
SQL> select round(555.245,-1) from dual;
ROUND(555.245,-1)
-----------------
????????????? 560
SQL> select round(555.245,-2) from dual;
ROUND(555.245,-2)
-----------------
????????????? 600
SQL> select round(555.245,-3) from dual;
ROUND(555.245,-3)
-----------------
???????????? 1000
SQL> select round(455.245,-3) from dual;
ROUND(455.245,-3)
-----------------
??????????????? 0
例如對2.4449999999 保留5為四舍五入,? 讀書時可能 2.44499999 ~ 2,445 ~ 2.45
但oracle 之考慮 2.444 ~ 2.44
SQL> select round(456.2449999999,2) from dual;
ROUND(456.2449999999,2)
-----------------------
???????????????? 456.24
NVL(p1,p2)
呢個好簡單, 如果p1是NULL則返回p2,否則p1.?? 相當于sybase 的isnull拉。
NVL2(p1,p2,p3)
如果p1是NULL則返回p2,否則p3..
NULLIF(p1,p2)
如果p1等于p2 返回NULL, 否則返回p1, p1不能為NULL。
COALESCE(p1,p2,p3...pn)
返回第1個非空表達式,如果p1非空返回p1, 若p1是NULL而p2非NULL則返回p2....后面你懂的。。
Decode(p,? p1,? r1,
??????????????? p2,? r2,
??????????????? p3,? r3,
??????????? r0)
條件判斷函數相當于? case p when p1 then r1
??????????????????????????????????????????? when p2 then r2
??????????????????????????????????????????? when p2 then r3
??????????????????????????????????????????? else r0
?????????????????????????????????? end
總結
以上是生活随笔為你收集整理的Oracle 入面既一d函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle 11gR2 安装 exam
- 下一篇: sqldeveloper 连接oracl