作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的情况很复杂。我想编写一个 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/
我是一名优秀的程序员,十分优秀!