NVL
nvl(expr1, expr2)
如果 expr1 是 null, 回傳 expr2, 否則回傳 expr1
註:expr1 和 expr2 可以是任何資料型態。 但如果它們的資料型態不同,會自動進行隱式轉換。 如果無法隱式轉換,會拋出錯誤。
範例輸出:
select nvl('', 'r') from dual;
---
r
NVL2
nvl2(expr1, expr2, expr3)
如果 expr1 是 null, 回傳 expr3, 否則回傳 expr2
註:expr1 可以是任何資料型態。expr2 和 expr3 可以是除了 LONG 以外的資料型態
範例輸出:
select nvl2(null, 2, '3') from dual;
---
3
NULLIF
nullif(expr1, expr2)
如果 expr1 等於 expr2 ,回傳 null, 否則回傳 expr1
註:expr1 不能是「null」,這樣會拋出錯誤,錯誤訊息:[42000][932] ORA-00932: inconsistent datatypes: expected - got CHAR Position: 14
範例輸出:
select nullif('a', 'b') from dual;
---
a
參考資料:
NVL
NVL2
NULLIF
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com