基于输入的SQL案例

时间:2014-03-24 05:53:20

标签: sql sql-server sql-server-2012

我需要能够根据输入字符串从表中选择两种不同的数据结果。到目前为止,我已经尝试了以下代码:

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部分。

有人可以告诉我这样做的正确方法吗?

1 个答案:

答案 0 :(得分:1)

CASE..WHEN不支持通配符。改为使用和/或逻辑。

WHERE
   (
      (
          @Series like '% SA %' and
          Cttn.CttnName like '%ALL SA%'
      )
      OR
      Cttn.CttnNme LIKE Isnull(@Series, Cttn.CttnNme)
   )
   AND
   ...