[英]Using CASE WHEN statements (MySQL)
挣扎于一个当when语句(MySQL)及其可能缺少的简单事情的情况下。
我有一个相当复杂的查询,它输出一些传感器值以及上下限(最终将触发警报),作为我使用的查询的一部分,
case when sequence=0 then value END as lowlimit,
case when sequence=1 then value END as highlimit
选择的输出是-
status sensor lowlimit highlimit
163 49 NULL 24
163 49 15 NULL
128 25 NULL 8
128 25 4 NULL
但我需要将结果“串联”(每个唯一状态的一行),因此-
status sensor lowlimit highlimit
163 49 15 24
128 25 4 8
所以可能需要在case语句中添加一些内容,但是如果我使用
max(case when sequence=0 then value END) as lowlimit,
max(case when sequence=1 then value END) as highlimit
那么仅输出1行-
status sensor lowlimit highlimit
163 49 15 24
任何帮助表示赞赏。
关于活动
如果在同一行上需要结果,则应使用seleft连接(不区分大小写)
select a.status, a.sensor, a.values as lowlimit, b.value as highlimit
from my_table a
inner join (
select status, sensor, value from my_table
where sequence = 1
) b on a.sensor = b.sensor and a.status = b.status
where a.sequence = 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.