繁体   English   中英

使用CASE WHEN语句(MySQL)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM