WHERE子句中的SQL Server CASE表达式可检查NULL值

时间:2019-10-30 06:32:43

标签: sql sql-server

我尝试在SQL Server中执行此查询:

select * from users where case when 1=1 then name is null else true end;

但是我得到了这个错误:

  

关键字“ is”附近的语法不正确

此查询在MySQL中成功运行。您能告诉我SQL Server中此查询的等效内容吗?

1 个答案:

答案 0 :(得分:2)

您无法执行此类表达,语法错误。

如果要选择条件,则必须使用逻辑运算符:

where (1=1 and name is null)
   or (1<>1 and 1=1)

我将true替换为始终评估为true(1=1)的条件,因为true本身是查询中的另一个语法错误。