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

How to apply if/else logic in where clause?

我有基于 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 语句中的内容?

如果我没看错的话,您似乎在寻找:

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

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