SQL不是我的强项,但我无法弄清楚为什么这不起作用。我只是想根据一个值运行一个不同的AND语句。具体而言,我想改变日期部分中DateDiff函数,如果foo是= 0SQL Server 2012 - Case语句在where子句
SELECT foo,
bar,
test
FROM table
WHERE bar = 1,
CASE WHEN foo = 0
AND dateDiff(dd, getDate(), 2) < test
ELSE
AND dateDiff(hh, getDate(), 2) < test
END
你在查询中遇到了语法错误 –
我不知道为什么,但这是人们在SQL中犯的一个常见错误 - 他们真的需要引入一个CASE表达式,他们真正需要的是基本的逻辑运算符。 –
达米安,谨慎推断? –