我有一个复杂的情况。我想在“ where子句”上编写一个包括“ case when”条件的sql查询。
就像这样:
SELECT * FROM <table> WHERE <Column1> in CASE <Column2> WHEN 1 THEN ('OP', 'CL') WHEN 0 THEN ('RE', 'ST') END
Column1必须为“ in”,而不是“ =“。因为Column1的条件处有多个值。该查询返回“’,’附近的语法不正确”。错误。
你能给我什么建议吗?(对不起,我的英语不好。)
编辑:我想我误会了。如果Column2为1,条件必须类似于“ IN(’OP’,’CL’)”,否则Column1为2,条件必须类似于“ IN(’RE’,’ST’)”。
您不需要CASE为此的表达式,只需使用OR如下代码即可:
CASE
OR
SELECT * FROM <table> WHERE (Column2 = 1 AND Column1 IN ('OP', 'CL')) OR (Column2 = 0 AND Column1 IN ('RE', 'ST'))