如何在where子句中应用if/else逻辑?

esp*_*fee 1 sql if-statement case where

我有基于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
}
Run Code Online (Sandbox Code Playgroud)

我在SQL中试过这个:

WHERE id IN (89,56,87)
   AND ( 
           (type = 'TRNG' AND status = 'Y') 
           OR 
           (1=1)
        )
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法实现if/else语句中的功能?

GMB*_*GMB 7

如果我正确地跟着你,你似乎在寻找:

WHERE id IN (89,56,87) AND ( type <> 'DEV' OR status = 'Y') 
Run Code Online (Sandbox Code Playgroud)

这意味着:如果type'DEV',则status必须等于'Y'.这意味着如果type不同于DEV,则status允许任何值.