如何申请where子句中的if / else逻辑?

问题描述 投票:1回答:1

我有一个基于If/Else陈述逻辑。这应该在SQL where子句过滤器被应用。下面是例子如何应该是这样的:

if (type = 'DEV') { // If type is DEV then status should be Y
   status = 'Y'
}else{ // If not do not apply filter
   1=1
}

我在SQL试过这样:

WHERE id IN (89,56,87)
   AND ( 
           (type = 'TRNG' AND status = 'Y') 
           OR 
           (1=1)
        )

我不知道是否有一种方法可以实现我在if / else语句?

sql if-statement case where
1个回答
7
投票

如果我没有跟着你,你似乎在寻找:

WHERE id IN (89,56,87) AND ( type <> 'DEV' OR status = 'Y') 

这意味着:如果type'DEV',然后status必须等于'Y'。这意味着,如果typeDEV不同,那么status的任何值是允许的。

© www.soinside.com 2019 - 2024. All rights reserved.