我的查询看起来像:
SELECT *
FROM table
WHERE t1.id_status_notatka_1 = ANY (selected_type)
AND t1.id_status_notatka_2 = ANY (selected_place)
在这里我想添加 CASE WHEN 所以我的查询是:
SELECT *
FROM table
WHERE t1.id_status_notatka_1 = ANY (selected_type)
AND t1.id_status_notatka_2 = ANY (selected_place)
AND CASE
WHEN t2.id_bank = 12 THEN t1.id_status_notatka_4 = ANY (selected_effect)
END
但它不起作用。语法很好,但无法搜索任何内容。所以我的问题是 - 如何在 WHERE 子句中使用 CASE WHEN。简短示例:如果 a=0 则向 WHERE 添加一些条件(AND 条件),如果不是则不添加(AND 条件)
原文由 Michu93 发布,翻译遵循 CC BY-SA 4.0 许可协议
不需要
CASE EXPRESSION
,只需使用OR
带括号: