Case when then, but with AND condition inside when and before then(Case when then,但在 when 和 before then 内有 AND 条件)
问题描述
在下面的查询中,我想在 CASE 的 WHEN 和 THEN 之前添加一个 AND 条件,这可能吗?
In the below query I want to add an AND condition inside the CASE's WHEN and before THEN is that possible?
例如 WHEN 'r' AND table1.name="jones" THEN 'very high'
for example WHEN 'r' AND table1.name="jones" THEN 'very high'
SELECT table1.id, table1.name,
CASE table1.event
WHEN 'r' THEN 'very high'
WHEN 't' THEN 'very low'
ELSE (SELECT table2.risk FROM table2 WHERE table2.value <= table1.value
ORDER BY table2.value DESC LIMIT 1)
END AS risk
FROM table1
ORDER BY FIELD( table1.event, 'r', 'f', 't' ), table1.value DESC
推荐答案
你可以像这样重写你的语句来完成你想要的
You can rewrite your statement like this to accomplish what you want
SELECT table1.id, table1.name,
CASE
WHEN table1.event = 'r' AND table1.name = 'jones' THEN 'very high'
WHEN table1.event = 't' AND table1.name = 'smith' THEN 'very low'
ELSE (SELECT table2.risk FROM table2 WHERE table2.value <= table1.value
ORDER BY table2.value DESC LIMIT 1)
END AS risk
FROM table1
ORDER BY FIELD( table1.event, 'r', 'f', 't' ), table1.value DESC
注意您需要删除CASE
语句之后的table1.event
.此处的文档
notice that you need to remove table1.event
after the CASE
statement.
documentation here
这篇关于Case when then,但在 when 和 before then 内有 AND 条件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Case when then,但在 when 和 before then 内有 AND 条件


- 如何使用 pip 安装 Python MySQLdb 模块? 2021-01-01
- 如何将 Byte[] 插入 SQL Server VARBINARY 列 2021-01-01
- 如何将 SonarQube 6.7 从 MySQL 迁移到 postgresql 2022-01-01
- 更改自动增量起始编号? 2021-01-01
- SQL 临时表问题 2022-01-01
- 使用 Oracle PL/SQL developer 生成测试数据 2021-01-01
- 在SQL中,如何为每个组选择前2行 2021-01-01
- 远程 mySQL 连接抛出“无法使用旧的不安全身份验证连接到 MySQL 4.1+"来自 XAMPP 的错误 2022-01-01
- 导入具有可变标题的 Excel 文件 2021-01-01
- 以一个值为轴心,但将一行上的数据按另一行分组? 2022-01-01