1.NVL 函数用法

语法:NVL(expr1, expr2)

说明:如果 expr1(表达式1)是 null 值,则 NVL 函数返回 expr2(表达式2),否则就返回 expr1(表达式1)。

2.NVL 函数注意事项

expr1(表达式1)和 expr2(表达式2)可以是任何数据类型,但应该保持相同;如果两者数据类型不一致,则 Oracle 数据库会隐式地转换其中一个的数据类型使其保持和另一个一致,若无法转换则会返回错误。

3.隐式转换规则

  1. 若 expr1(表达式1)是字符数据,则 Oracle 数据库在比较之前就会把 expr2(表达式2)转换成 expr1(表达式1)的数据类型并且返回 VARCHAR2 数据类型到 expr1(表达式1)的字符集。

  2. 若 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;
  • 1.
  • 2.
  • 3.
  • 4.

结果:

Oracle 11g - - - NVL函数的用法_数据库

参考: https://www.cnblogs.com/hanfeihanfei/p/7699637.html