2016-04-29 81 views
1

我期待與這些功能簡單的例子詳細的答案。是什麼NVL和Oracle中的NVL2功能?他們有什麼不同?

+0

標籤的DBMS。這些功能是產品特定的。 – jarlh

+2

對不起,是生硬的,而是從字面上谷歌搜索的第一個結果'NVL VS nvl2'包含了答案。至少對我來說,這是... – user1429080

+1

如果一切都失敗了,閱讀手冊:https://docs.oracle.com/database/121/SQLRF/functions131.htm#SQLRF00684和https://docs.oracle。 COM /數據庫/ 121/SQLRF/functions132.htm#SQLRF00685 –

回答

9

NVL檢查第一參數爲空,並返回第二個參數:在這個例子中結果

select nvl(null, 'arg2') from dual 

將是:ARG2;

select nvl('arg1', 'arg2') from dual 

而在這一個中:arg1;

NVL2具有不同的邏輯。如果第一個參數不爲空,然後NVL2返回第二個參數,但在其他情況下,它會返回第三個參數:

select nvl2('arg1', 'arg2', 'arg3') from dual 

結果:ARG2

select nvl2(null, 'arg2', 'arg3') from dual 

結果:ARG3

相關問題