WHERE子句中的SQL Server CASE表达式以检查NULL值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WHERE子句中的SQL Server CASE表达式以检查NULL值相关的知识,希望对你有一定的参考价值。
我尝试在SQL Server中执行此查询:
select * from users where case when 1=1 then name is null else true end;
但我收到此错误:
关键字“ is”附近的语法不正确
此查询在mysql中成功运行。您能告诉我SQL Server中此查询的等效内容吗?
答案
您可以在下面尝试-
select * from users where (case when 1=1 then name end) is null
另一答案
您不能做这样的表达,语法是错误的。
如果要选择条件,则必须使用逻辑运算符:
where (1=1 and name is null)
or (1<>1 and 1=1)
我用始终评估为true(true
)的条件替换了1=1
,因为true
本身是查询中的另一个语法错误。
另一答案
尝试一下。
select * from users where iif(name = null, cast(0 as bit), 1) is null
以上是关于WHERE子句中的SQL Server CASE表达式以检查NULL值的主要内容,如果未能解决你的问题,请参考以下文章
WHERE子句中的SQL Server CASE表达式以检查NULL值