SQL函数 NULLIF

2022-04-12 11:43:45 浏览数 (1)

SQL函数 NULLIF

如果两个表达式具有相同的值,则返回 NULL 的函数。

大纲

代码语言:javascript复制
NULLIF(expression1,expression2)

参数

  • expression1 - 表达式,可以是列名、数字或字符串文字、主变量或另一个标量函数的结果。
  • expression2 - 表达式,可以是列名、数字或字符串文字、主变量或另一个标量函数的结果。

NULLIF 返回与 expression1 相同的数据类型。

描述

如果 expression1 的值等于 expression2 的值,则 NULLIF 函数返回 NULL。否则,它返回 expression1 值。

NULLIF 等价于:

代码语言:javascript复制
SELECT CASE 
WHEN value1 = value2 THEN NULL
ELSE value1
END
FROM MyTable

NULL 处理函数比较

下表显示了各种 SQL 比较函数。如果逻辑比较测试为 TrueAB 相同),则每个函数返回一个值,如果逻辑比较测试为 FalseAB 不同),则返回另一个值。这些函数允许执行 NULL 逻辑比较。不能在实际相等(或不相等)条件比较中指定 NULL

SQL Function

Comparison

Test Return Value

IFNULL(ex1,ex2) [two-argument form]

ex1 = NULL

True returns ex2 False returns NULL

IFNULL(ex1,ex2,ex3) [three-argument form]

ex1 = NULL

True returns ex2 False returns ex3

{fn IFNULL(ex1,ex2)}

ex1 = NULL

True returns ex2 False returns ex1

ISNULL(ex1,ex2)

ex1 = NULL

True returns ex2 False returns ex1

NVL(ex1,ex2)

ex1 = NULL

True returns ex2 False returns ex1

NULLIF(ex1,ex2)

ex1 = ex2

True returns NULL False returns ex1

COALESCE(ex1,ex2,...)

ex = NULL for each argument

True tests next ex argument. If all ex arguments are True (NULL), returns NULL. False returns ex

示例

以下示例使用 NULLIF 函数将 Age=20 的所有记录的显示字段设置为空:

代码语言:javascript复制
SELECT Name,Age,NULLIF(Age,20) AS Nulled20
FROM Sample.Person

0 人点赞