我有这样的查询
Select * from table1
where col1 = true or col2 = false or
case when @param <> 2 then col3 = col4 end
where 中的最后一个条件是抛出错误
Incorrect syntax near '<'
最佳答案
您不能使用 CASE
表达式来控制 SQL 中的执行流程。 CASE
是一个表达式,它只返回一个标量 值。
您可以改用以下谓词:
((@param <> 2 AND col3 = col4) OR (@param = 2))
因此,查询的 WHERE
子句将如下所示:
WHERE (col1 = true) OR (col2 = false) OR ((@param <> 2 AND col3 = col4) OR (@param = 2))
关于sql - 根据参数运行一个 where 子句条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44941610/