mysql перемещение 2 столбцов в один переупорядочение данных, где не 0 - PullRequest
0 голосов
/ 02 марта 2020

Можно ли переставить эту таблицу в одну таблицу (используя представление)

+----+------+--------+
| 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 |
+----+------+

1 Ответ

1 голос
/ 02 марта 2020

Я думаю, что для разворота данных, игнорируя 0 значения.

Рассмотрим:

select 
    row_number() over(order by t.id, t.seq) id,
    t.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 t.id, t.seq
...