Oracle NULLIF() 函数使用指南
Oracle NULLIF()
是一个内置函数,它比较两个参数,如果两个参数相等就返回 NULL
,否则返回第一个参数。
Oracle NULLIF()
语法
这里是 Oracle NULLIF()
函数的语法:
NULLIF(expr1, expr2)
NULLIF(expr1, expr2)
函数在逻辑上等同于这个 CASE
表达式:CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END
。
参数
expr1
-
必需的。一个值或者表达式。
expr2
-
必需的。另一个值或者表达式。
如果两个参数都是数字数据类型,则 Oracle 数据库确定具有较高数字优先级的参数,隐式地将另一个参数转换为该数据类型,然后返回该数据类型。如果参数不是数字,那么它们必须是相同的数据类型,否则 Oracle 会返回错误。
返回值
Oracle NULLIF()
函数比较两个参数,如果两个参数相等就返回 NULL
,否则返回第一个参数。
如果两个参数都为 NULL
, NULLIF()
将返回一个错误。
Oracle NULLIF()
示例
这里有几个展示了 Oracle NULLIF()
函数用法的示例。
基本用法
SELECT
NULLIF(1, 1),
NULLIF(1, 2)
FROM dual;
输出:
NULLIF(1,1) NULLIF(1,2)
______________ ______________
NULL 1
下面的语句使用 CASE
表达式实现:
SELECT
CASE WHEN 1 = 1 THEN NULL ELSE 1 END,
CASE WHEN 1 = 2 THEN NULL ELSE 1 END
FROM dual;
输出:
CASEWHEN1=1THENNULLELSE1END CASEWHEN1=2THENNULLELSE1END
______________________________ ______________________________
NULL 1
NULL 参数
如果两个参数都为 NULL
, NULLIF()
将返回一个错误。
SET NULL 'NULL';
SELECT
NULLIF(NULL, NULL)
FROM dual;
输出:
SQL Error: ORA-00932: inconsistent datatypes: expected - got CHAR
在本示例中,我们使用 SET NULL 'NULL';
语句将 NULL
值显示为 'NULL'
字符串。
结论
Oracle NULLIF()
是一个内置函数,它比较两个参数,如果两个参数相等就返回 NULL
,否则返回第一个参数。