我看到了这个链接来找到我的问题的解决方案:
案例在何处,SQL Server
但是,就我而言,我需要评估当参数具有某个值时,它会在字段为 null或不为 null时对其进行评估,例如:
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)
不能像尝试的那样使用case
表达式返回查询的某些部分,只能返回值。
但是,您可以使用逻辑操作符来模拟他的行为:
WHERE (@parameter = 1 AND a.fieldOne IS NULL) OR
(@parameter <> 1 AND a.fieldOne IS NOT NULL)