这是一个大查询的一部分。
我想做的是,如果变量@exemptionStartDate = '1900-01-01'
,那么只需选择所有内容,
即。 ce.ExemptionStartDate = ce.ExemptionStartDate
。
否则,我只想要ce.ExemptionStartDate > @exemptionStartDate
所在的行
ce.ExemptionStartDate具有DateTime值
SELECT foobar
WHERE foo = bar
AND ce.ExemptionStartDate = CASE WHEN @exemptionStartDate = '1900-01-01' THEN ce.ExemptionStartDate ELSE (> @exemptionStartDate) END
可能吗?还是我需要做一些棘手的事情,使所有内容变成一个很长的字符串,并根据需要添加它?
我遇到语法错误,并且不知道如何形成这样的东西。
最佳答案
不需要使事情复杂化
if @exemptionStartDate = '1900-01-01'
set @exemptionStartDate = '1753-01-01' --lowest date for datetime
然后就是
where ce.ExemptionStartDate > @exemptionStartDate
关于sql - t-sql在case语句中将 '='更改为 '> or <',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5110743/