SQL Server (Transact-SQL) NULLIF() 函数比较两个表达式,如果相等则返回 NULL。否则,返回第一个表达式。
语法
NULLIF(expr1, expr2)
参数
expr1, expr2 | <代码>必填。 指定要比较的两个表达式。 |
返回值
如果expr1和 expr2 相等则返回NULL。否则,返回expr1。
示例1:
下面的示例显示NULLIF()函数的用法。
SELECT NULLIF('John', 'John');
Result: NULL
SELECT NULLIF('John', 'John_2005');
Result: 'John'
SELECT NULLIF(123, 456);
Result: 123
SELECT NULLIF(123, 123);
Result: NULL
示例 2:
考虑一个名为 Employee 的数据库表,其中包含以下记录:
EmpID | Name | City | Age | Salary |
---|---|---|---|---|
1 | John | London | 25 | 3000 |
2 | Marry | New York | 24 | 2750 |
3 | Jo | Paris | 27 | 2800 |
4 | Kim | Amsterdam | 30 | 3100 |
5 | Ramesh | New Delhi | 28 | 3000 |
6 | Huang | Beijing | 28 | 2800 |
在下面的查询中中,NULLIF() 函数用于根据"Paris"检查City 列记录。这意味着如果员工城市是Paris,则返回NULL。否则,它返回列值。
SELECT *, NULLIF(City, 'Paris') AS Result
FROM Employee;
这将产生如下所示的结果:
EmpID | Name | City | Age | Salary | Result |
---|---|---|---|---|---|
1 | John | London | 25 | 3000 | London |
2 | Marry | New York | 24 | 2750 | New York |
3 | Jo | Paris | 27 | 2800 | NULL |
4 | Kim | Amsterdam | 30 | 3100 | Amsterdam |
5 | Ramesh | New Delhi | 28 | 3000 | New Delhi |
6 | Huang | Beijing | 28 | 2800 | Beijing |