在Oracle中,NVL2函數用于根據表達式的值來返回不同的結果。該函數的語法如下:
NVL2(expr1, expr2, expr3)
其中,expr1是要檢查的表達式,如果表達式的值不為null,則返回expr2,否則返回expr3。
例如,假設有一個表格包含員工的出生日期和姓名,我們想要根據員工是否年滿18歲來返回不同的結果:
SELECT name, NVL2(birthdate,
CASE WHEN months_between(sysdate, birthdate)/12 >= 18
THEN 'Adult'
ELSE 'Minor'
END,
'Unknown') AS age_group
FROM employees;
在上面的示例中,如果員工的出生日期不為空,則根據員工年齡返回相應的結果(Adult或Minor),如果出生日期為空,則返回Unknown。