Skip to content

适用虚谷数据库版本

v12.10.8



适用虚谷数据库版本

v12.10.8


NVL

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

功能描述

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

语法格式

sql
NVL(expr1,expr2)

输入参数

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

注意

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

输出结果

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

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

执行类型

TYPEVALUE说明
NATIVE0函数只能在本地计算
VOLATI0函数的每次计算值不同
STABLE0函数的每次计算值相同
COMPUTE0函数支持预计算取值
NOT_CONST0函数不支持转常数
HAVE_DEF0函数参数有默认值

示例

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

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