可以将此表重新安排到一个表中(使用视图)
+----+------+--------+
| 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 |
+----+------+
我认为在忽略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