1.NVL 函数用法
语法:NVL(expr1, expr2)
说明:如果 expr1(表达式1)是 null 值,则 NVL 函数返回 expr2(表达式2),否则就返回 expr1(表达式1)。
2.NVL 函数注意事项
expr1(表达式1)和 expr2(表达式2)可以是任何数据类型,但应该保持相同;如果两者数据类型不一致,则 Oracle 数据库会隐式地转换其中一个的数据类型使其保持和另一个一致,若无法转换则会返回错误。
3.隐式转换规则
-
若 expr1(表达式1)是字符数据,则 Oracle 数据库在比较之前就会把 expr2(表达式2)转换成 expr1(表达式1)的数据类型并且返回 VARCHAR2 数据类型到 expr1(表达式1)的字符集。
-
若 expr1(表达式1)是数值型,则 Oracle 数据库决定哪个参数具有最高数值优先级,并把另一个参数的数据类型隐式转换成这种数据类型,并返回这种数据类型的数据。
4.NVL 函数使用示例
问题:查询员工姓名和奖金,若该员工没有奖金则返回 Not Applicable。
答案:
SELECT last_name, NVL(TO_CHAR(commission_pct), 'Not Applicable') "COMMISSION"
FROM employees
WHERE last_name LIKE 'B%'
ORDER BY last_name;
结果:
参考:https://www.cnblogs.com/hanfeihanfei/p/7699637.html