在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。