日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle 入面既一d函数

發布時間:2025/3/20 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle 入面既一d函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
LPAD(column|expression, n,'string')
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

注意輸出返回值已被砍至12個字符。? 無論lpad定系 rpad。
======================================================================================
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

從第1個字符截1個字符, 當然系J拉


SQL> select substr('Jason', -1 ,1) from dual;

S
-
n

從倒數第1個字符截1個字符, 就系n了

SQL> select substr('Jason', -2 ,1) from dual;

S
-
o

從倒數第2個字符截1個字符, 就系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

默認n=0,即系保留0個小數位

SQL> select round(555.245) from dual;

ROUND(555.245)
--------------
?????????? 555

n=1, 從小數點左邊第2位(十位)四舍五入。

SQL> select round(555.245,-1) from dual;

ROUND(555.245,-1)
-----------------
????????????? 560

n=2,從小數點左邊第3位(百位)四舍五入。

SQL> select round(555.245,-2) from dual;

ROUND(555.245,-2)
-----------------
????????????? 600

n=3,從小數點左邊第3位(百位)四舍五入。 相當于 0555, 對千位數四舍五入 就系1000

SQL> select round(555.245,-3) from dual;

ROUND(555.245,-3)
-----------------
???????????? 1000

注意:?? 上面例子當百位小于5時, 相當于0455 千位數四舍五入, 因為百位小于5, 千位就系0了? 變成0000了。

SQL> select round(455.245,-3) from dual;

ROUND(455.245,-3)
-----------------
??????????????? 0

而且oracle 四舍5入 只考慮當前位數的右邊一位的大小, 而不是從最右邊那位開始計起的。
例如對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函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。