天天看點

Oracle NVL與Coalesce函數的差別

轉載:https://www.cnblogs.com/zzyblog/p/3248328.html

NVL(test_value, test_value2)

如果第一個參數為null,則傳回第二個參數

如果第一個參數為非null,則傳回第一個參數

COALESCE(EXPR1,EXPR2,EXPR3...EXPRn)

從左往右數,遇到第一個非null值,則傳回該非null值。

多層判斷

第一點差別:從上面可以知道,nvl隻适合于兩個參數的,COALESCE适合于多個參數。

第二點差別:COALESCE裡的所有參數類型必須保持一緻,nvl可以不一緻。

當然還有一些其他的差別,這裡不再贅述