从具有引用id的行中查找值

lbsnaicq  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(300)

我有下表记录测量(空,1/4,半,3/4,满)和它们的日期。

ID   m1    Time1        m2   time2       m3    Time3       m4   time4
1    half  01/02/2018   3/4  06/06/2018  full  07/06/2018
2    3/4   18/01/2018   full 30/06/2018  
3    full  26/04/2018    
4    1/4   01/02/2018   half 29/06/2018  3/4   01/08/2018  full 03/08/2018

是否可以查询测量值为一半的日期以获得以下输出:

ID  time_full
1   01/02/2018
2   NULL
3   NULL
4   29/06/2018

或者我们可以很容易地把这个纵向的表格转换成这样的横截面表格吗

ID  m     time
1   half  01/02/2018
1   3/4   06/06/2018 
1   full  07/06/2018
2   3/4   18/01/2018   
2   full  30/06/2018
3   full  26/04/2018
(...)

谢谢您

jpfvwuh4

jpfvwuh41#

像这样的东西应该能满足你的需求:

select 
    `ID`,
    coalesce(
        if (`m1` = 'half', `Time1`, null),
        if (`m2` = 'half', `time2`, null),
        if (`m3` = 'half', `Time3`, null),
        if (`m4` = 'half', `time4`, null)
    ) time_half
from _data
bq3bfh9z

bq3bfh9z2#

select id,
case m when 'half' then m else null end m,
case m when 'half' then time1 else null end time_full
from table

但是你的例子,4是1/4,你的例子在你的预期结果中显示了这一点。

相关问题