一尘不染

案件在什么情况下出现“泪N”的情况?

sql

我有一个复杂的情况。我想在“ 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’)”。


阅读 169

收藏
2021-05-30

共1个答案

一尘不染

您不需要CASE为此的表达式,只需使用OR如下代码即可:

SELECT *
FROM <table>
WHERE (Column2 = 1 AND Column1 IN ('OP', 'CL')) OR
    (Column2 = 0 AND Column1 IN ('RE', 'ST'))
2021-05-30