SQL Server NULLIF() 函数使用指南

在 SQL Server 中, NULLIF() 函数是一种条件函数,用于比较两个表达式,并在它们相等时返回 NULL,否则返回第一个表达式的值。

语法

NULLIF(expression1, expression2)

参数说明:

  • expression1: 要比较的第一个表达式。
  • expression2: 要比较的第二个表达式。

使用场景 在某些情况下,我们可能需要在两个表达式相等时返回 NULL,否则返回表达式 1 的值。这时,我们可以使用 NULLIF() 函数来实现这一需求。例如,在处理数据时,我们可能需要过滤掉一些无用的数据,这些数据中的某些字段可能包含空值或默认值,我们可以使用 NULLIF() 函数将这些值转换成 NULL。

示例

下面我们来看两个使用 NULLIF() 函数的示例:

示例 1:将默认值转换成 NULL

假设我们有一个包含产品信息的表格,其中包括产品名称、价格和描述。我们发现有些产品的描述字段被设置成了默认值,我们希望将这些默认值转换成 NULL。可以使用如下 SQL 语句:

SELECT ProductName, Price, NULLIF(Description, 'default') AS Description
FROM Products

运行结果:

ProductName Price Description
Product A 10.99 NULL
Product B 20.99 This is B
Product C 30.99 NULL

示例 2:将相等的值转换成 NULL

假设我们有一个包含用户信息的表格,其中包括用户 ID、姓名和电子邮件地址。我们发现有些用户的电子邮件地址与其姓名相同,我们不希望这些用户的电子邮件地址显示在结果中,而是希望将它们转换成 NULL。可以使用如下 SQL 语句:

SELECT UserID, Name, NULLIF(Email, Name) AS Email
FROM Users

运行结果:

UserID Name Email
1 John [email protected]
2 Mary [email protected]
3 Peter NULL

结论

NULLIF() 函数是一种非常有用的条件函数,可以方便地将某些值转换成 NULL。当我们需要将默认值或相等的值转换成 NULL 时, NULLIF() 函数是一个很好的选择。