NVL 函数

可以使用 NVL 函数将求值为 NULL 的表达式转换为您指定的值。NVL 函数接受两个参数:第一个参数获取要求值的表达式的名称;第二个参数指定当第一个参数求值为 NULL 时函数返回的值。如果第一个参数求值不为 NULL,那么函数将返回第一个参数的值。假设包括 nameaddress 列的 student 表存在。同时假设对 student 表执行以下查询。

图: 查询

SELECT name, address FROM student;

图: 查询结果

name               address
            
            John Smith         333 Vista Drive
            Lauren Collier     1129 Greenridge Street
            Fred Frith         NULL
            Susan Jordan       NULL
以下是包括 NVL 函数的一个示例,该函数为表 address 列包含 NULL 值的每一行返回一个新值。

图: 查询

SELECT name, NVL(address, "address is unknown") AS address 
          FROM student;

图: 查询结果

name               address
            
            John Smith         333 Vista Drive
            Lauren Collier     1129 Greenridge Street
            Fred Frith         address is unknown
            Susan Jordan       address is unknown

可以为 NVL 函数指定任何数据类型,只要这两个参数求值为公共兼容的数据类型。

如果 NVL 函数的两个参数都求值为 NULL,那么函数返回 NULL。

GBase 8s 还支持 NULLIF 函数。该函数类似于 NVL 函数。但语义不同。如果其两个参数相等,NULLIF 返回 NULL,或者两个参数不相等,将返回第一个参数。有关 NULLIF 函数的更多信息,请参阅 GBase 8s SQL 指南:语法