IN CASE的SQL语句

时间:2014-05-15 10:10:02

标签: select case where

SELECT user 
FROM userlist zH with(nolock) 
where zH.user in (case when zh.trait='1' then ('B', 'HO', 'KO', 'PL','APP','2A','2B') else ('O') end)

这个声明可以用于案例工作吗?我希望你明白我的意思。感谢。

2 个答案:

答案 0 :(得分:0)

SELECT  [user]
FROM    userlist zH WITH ( NOLOCK )
WHERE   ( zh.trait = '1'
          AND zH.[user] IN ( 'B', 'HO', 'KO', 'PL', 'APP', '2A', '2B' )
        )
        OR ( zh.trait <> '1'
             AND zH.[user] IN ( 'O' )
           )

答案 1 :(得分:0)

您可以使用嵌套的case语句,例如

SELECT user 
FROM userlist zH with(nolock) 
where 'true' = 
   (case when zh.trait = '1' 
       then 
           case when zH.user in ('B', 'HO', 'KO', 'PL','APP','2A','2B') 
               then 'true'
               else 'false'
           end
       else 
           case when zH.user = 'O'
               then 'true'
               else 'false'
           end
   end)