我需要能够根据输入字符串从表中选择两种不同的数据结果。到目前为止,我已经尝试了以下代码:
SELECT * FROM
wherever WHERE
AND 1 = case @Series
when '% SA %' then
case when Cttn.CttnNme LIKE '%ALL SA%'
then 1 else 0
end
else
case when Cttn.CttnNme LIKE Isnull(@Series, Cttn.CttnNme)
then 1 else 0
end
END
但它似乎永远不会碰到when '% SA %' then
部分。
有人可以告诉我这样做的正确方法吗?
答案 0 :(得分:1)
CASE..WHEN不支持通配符。改为使用和/或逻辑。
WHERE
(
(
@Series like '% SA %' and
Cttn.CttnName like '%ALL SA%'
)
OR
Cttn.CttnNme LIKE Isnull(@Series, Cttn.CttnNme)
)
AND
...