先來說一下用法上的區別 :
nvl(COMMISSION_PCT,0)
如果第一個參數為null,則返回第二個參數
如果第一個參數為非null,則返回第一個參數
COALESCE(EXPR1,EXPR2,EXPR3...EXPRn)
從左往右數,遇到第一個非null值,則返回該非null值。
多層判斷
第一點區別:從上面可以知道,nvl只適合於兩個參數的,COALESCE適合於多個參數。
第二點區別:COALESCE里的所有參數類型必須保持一致,nvl可以不一致。
當然還有一些其他的區別,這里不再贅述。