Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


NVL

📄字数 470
👁️阅读量 加载中...

功能描述

判断 expr1 是否为 NULL,如果为 NULL 则返回 expr2,否则返回 expr1。功能同IFNULL

语法格式

sql
NVL(expr1,expr2)

输入参数

  • expr1:数据库支持的所有数据类型。
  • expr2:数据库支持的所有数据类型。

注意

expr1expr2 需要存在公共数据类型,否则执行报错

输出结果

返回值的数据类型根据 expr1expr2 的数据类型推导确定,具体规则如下:

  • expr1expr2 的数据类型相同,则返回该数据类型;
  • 若数据类型不同,则返回两者的 公共数据类型,即可以同时兼容两者的目标类型。通常遵循以下转换原则:
    • 数值类型中,将精度较低的类型提升为精度较高的类型(如:INTEGER + NUMERIC → NUMERIC)
    • 字符串与其他类型混用时,优先转换为字符串类型;
    • 日期/时间类型之间选择精度更高的(如:DATE 与 TIMESTAMP → TIMESTAMP)
    • 若无法隐式转换,函数会报错。

示例

sql
-- 根据第一个参数是否为空,返回相应值
SQL> SELECT NVL(NULL, '默认值') , NVL('实际值', '默认值')  FROM dual;

+--------+--------+
| EXPR1  | EXPR2  |
+--------+--------+
| 默认值 | 实际值 |
+--------+--------+