gpt4 book ai didi

sql - "IN"WHERE 子句中 CASE WHEN 的条件?

转载 作者:行者123 更新时间:2023-12-02 04:02:16 25 4
gpt4 key购买 nike

我的情况很复杂。我想编写一个 SQL 查询,包括“where 子句”上的“case when”条件。

就像这样:

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 即可,如下所示:

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

关于sql - "IN"WHERE 子句中 CASE WHEN 的条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12424551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com