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

时间:2019-02-06 15:12:00

标签: 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
}

我已经在SQL中尝试过此操作:

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

我想知道是否有一种方法可以实现if / else语句中的功能?

1 个答案:

答案 0 :(得分:7)

如果我正确地跟随了您,您似乎正在寻找:

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

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