SQL SERVER - 其中的情况(则为空,否则不为空)



我看到了这个链接来找到我的问题的解决方案:

案例在何处,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)

相关内容

最新更新