SQL 服务器 - WHERE 中的案例(THEN IS NULL ELSE IS NOT NULL)

SQL SERVER - CASE in WHERE (THEN IS NULL ELSE IS NOT NULL )

我看到这个 link 找到了我的问题的解决方案:

CASE in WHERE, SQL Server

但是,在我的例子中,我需要评估当参数具有特定值时,它会评估一个字段是否为空,例如:

WHERE (CASE @parameter WHEN 1 THEN a.fieldOne IS NULL ELSE a.fieldOne IS NOT NULL END)

但这对我不起作用...

编辑 1

例如当@parameter = 1

SELECT * FROM
FROM exampleTable as s
WHERE (s.fieldOne IS NULL)

而当@parameter = 0

SELECT * FROM
FROM exampleTable as s
WHERE (s.fieldOne IS NOT NULL)

您不能像您尝试的那样对查询的 return 部分使用 case 表达式,只能使用值。

但是,您可以使用逻辑运算符模拟他的行为:

WHERE (@parameter =  1 AND a.fieldOne IS NULL) OR
      (@parameter <> 1 AND a.fieldOne IS NOT NULL)