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 1NULL 参数
如果两个参数都为 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,否则返回第一个参数。