本篇文章為大家帶來了關於Oracle的相關知識,NVL函數的功能是實現空值的轉換,根據第一個表達式的值是否為空值來回傳回應的列名或表達式,下面這篇文章主要給大家介紹了關於Oracle中nvl()和nvl2()函數的相關資料,希望對大家有幫助。
推薦教學:《Oracle影片教學》
Oracle中nvl()與nvl2()函數詳解:
【函數格式】:nvl(expression1,expression2)
# 【函數說明】:
【範例展示一】:expression1值為null:
expression2為字元型:
select nvl(null,'ABCD') from dual; --返回:ABCD select nvl(null,'abcd') from dual; --返回:abcd select nvl(null,'12345') from dual; --返回:12345
expression2為數值型:
select nvl(null,12345) from dual; --返回:12345 select nvl(null,00000) from dual; --返回:0 select nvl(null,-12345) from dual; --返回:-12345 select nvl(null,123.45) from dual; --返回:123.45 select nvl(null,-123.45) from dual; --返回:-123.45
select nvl(null,sysdate) from dual; --返回:2022/2/25 11:54:18 select nvl(null,to_date('2022/2/25 11:54:18','yyyy-mm-dd hh24:mi:ss')) from dual; --返回:2022/2/25 11:54:18 select nvl(null,to_date('2022/2/25','yyyy-mm-dd')) from dual; --返回:2022/2/25 select nvl(null,to_date('2022','yyyy')) from dual; --返回:2022/2/1
【範例展示二】:expression1值不為null:
expression1為字元型:
select nvl('ABCD','abcd') from dual; --返回:ABCD select nvl('abcd','ABCD') from dual; --返回:abcd select nvl('12345','54321') from dual; --返回:12345
expression1為數值類型:
select nvl(12345,null) from dual; --返回:12345 select nvl(00000,11111) from dual; --返回:0 select nvl(-12345,null) from dual; --返回:-12345 select nvl(123.45,-123.45) from dual; --返回:123.45 select nvl(-123.45,123.45) from dual; --返回:-123.45
select nvl(sysdate,null) from dual; --返回:2022/2/25 12:18:23 select nvl(to_date('2022/2/25 12:18:23','yyyy-mm-dd hh24:mi:ss'),null) from dual; --返回:2022/2/25 12:18:23 select nvl(to_date('2022/2/25','yyyy-mm-dd'),null) from dual; --返回:2022/2/25 select nvl(to_date('2022','yyyy'),null) from dual; --返回:2022/2/1
select nvl(null,null) from dual; --返回空值 select nvl('',null) from dual; --返回空值 select nvl(null,'') from dual; --返回空值 select nvl('','') from dual; --返回空值
2.nvl2:依據參數1是否為null傳回參數2或參數3的值
【函數格式】:nvl2(expression1,expression2,expression3)
【範例顯示一】:expression1值不為null:
expression2與expression3皆為字元型:
select nvl2(0,'ABCD','abcd') from dual; --返回:ABCD select nvl2('a','ABCD','1234') from dual; --返回:ABCD select nvl2(sysdate,'1234','abcd') from dual; --返回:1234
expression2與expression3皆為數值型:
select nvl2(0,12345,54321) from dual; --返回:12345 select nvl2('a',123.45,543.21) from dual; --返回:123.45 select nvl2(sysdate,-12345,-54321) from dual; --返回:-12345
expression2與expression3資料型別不一致:
select nvl2(0,'ABCD',54321) from dual; --返回:ABCD select nvl2('a','abcd',543.21) from dual; --返回:abcd select nvl2(sysdate,'12345',-54321) from dual; --返回:12345
【範例展示二】:expression1值為null:
expression2與expression3皆為字元型:
select nvl2(null,'ABCD','abcd') from dual; --返回:abcd select nvl2('','ABCD','1234') from dual; --返回:1234
expression2與expression3皆為數值型:
select nvl2(null,12345,54321) from dual; --返回:54321 select nvl2('',123.45,543.21) from dual; --返回:543.21
expression2與expression3資料型別不一致:
select nvl2(null,'ABCD',54321) from dual; --返回:54321 select nvl2('','abcd',543.21) from dual; --返回:543.21 select nvl2('',543.21,'abcd') from dual; --执行报错 select nvl2(null,'abcd',sysdate) from dual; --返回:25-2月 -22 select nvl2(null,sysdate,'abcd') from dual; --执行报错
【範例展示三】:expression1為null,且expression2或expression3值為null:select nvl2(null,null,'123') from dual; --返回:123
select nvl2(null,'abc',null) from dual; --返回:空值
select nvl2(null,null,null) from dual; --返回:空值
select nvl2('','','') from dual; --返回:空值
推薦教學:《
以上是Oracle中nvl()與nvl2()函數實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!