NVL
返回列表中第一个非空表达式的值。
行为类型
不可变语法
NVL ( expression1 , expression2 );
参数
-
如果 expression1 为 NULL,则 NVL 返回 expression2。
-
如果 expression1 不为 NULL,则 NVL 返回 expression1。
注意
-
COALESCE 为更标准、更通用的函数。
-
NVL 等同于 COALESCE,但 NVL 仅通过两个实参调用。
-
实参可以包含 Vertica 支持的所有数据类型。
-
实施等同于 CASE 表达式:
CASE WHEN expression1 IS NULL THEN expression2 ELSE expression1 END;
示例
expression1 不为 NULL,因此 NVL 返回 expression1:
SELECT NVL('fast', 'database');
nvl
------
fast
(1 row)
expression1 为 NULL,因此 NVL 返回 expression2:
SELECT NVL(null, 'database');
nvl
----------
database
(1 row)
expression2 为 NULL,因此 NVL 返回 expression1:
SELECT NVL('fast', null);
nvl
------
fast
(1 row)
在以下示例中,expression1 (title) 包含 NULL,因此 NVL 返回 expression2 并将 "Withheld" 替换为未知值:
SELECT customer_name, NVL(title, 'Withheld') as title
FROM customer_dimension
ORDER BY title;
customer_name | title
------------------------+-------
Alexander I. Lang | Dr.
Steve S. Harris | Dr.
Daniel R. King | Dr.
Luigi I. Sanchez | Dr.
Duncan U. Carcetti | Dr.
Meghan K. Li | Dr.
Laura B. Perkins | Dr.
Samantha V. Robinson | Dr.
Joseph P. Wilson | Mr.
Kevin R. Miller | Mr.
Lauren D. Nguyen | Mrs.
Emily E. Goldberg | Mrs.
Darlene K. Harris | Ms.
Meghan J. Farmer | Ms.
Bettercare | Withheld
Ameristar | Withheld
Initech | Withheld
(17 rows)