mysql将2列移至一列,而不是0的数据

问题描述 投票:0回答:1

可以将此表重新安排到一个表中(使用视图)

+----+------+--------+
| id | item1| item2  |
+----+------+--------+
|  1 |    A |  B     |
|  2 |    0 |  B     |
|  3 |    A |  0     |
|  4 |    0 |  0     |
+----+------+--------+

将数据移动到这种安排:

+----+------+
| id |items |
+----+------+
|  1 |    A |
|  2 |    B |
|  3 |    B |
|  4 |    A |
+----+------+
mysql view
1个回答
0
投票

我认为在忽略0值的同时取消数据透视。

考虑:

select 
    row_number() over(order by id, seq) id,
    item
from (
    select id, 1 seq, item1 item from mytable where item1 <> 0
    union all select id, 2, item2 from mytable where item2 <> 0
) t
order by id, seq
© www.soinside.com 2019 - 2024. All rights reserved.