使用sql查询-数据透视或其他任何方式

时间:2018-07-10 13:44:08

标签: mysql sql

在以下情况下需要查询帮助。

表1

Name -ID1  - ID2 - ID3  
A1  - NULL - 11 - 12  
A2  -  14  - NULL -11

上表需要翻译如下

表2

Name - ID  
A1  - 11  
A1  - 12  
A2 - 14  
A2 - 11

table2将是基于表1的输出。将不考虑所有空值。最好的方法是什么?

有人可以帮助我查询如何执行此操作。非常感谢

2 个答案:

答案 0 :(得分:3)

使用UNION ALL

SELECT t.*
FROM
(
    SELECT name, id1 AS id FROM table1
    UNION ALL
    SELECT name, id2 FROM table1
    UNION ALL
    SELECT name, id3 FROM table1
) t
WHERE id IS NOT NULL
ORDER BY name;

答案 1 :(得分:0)

您可以使用UNPIVOT:

Assemblies: Windows.ApplicationModel.Appointments.dll, Windows.dll
Namespace: Windows.ApplicationModel.Appointments

这将自动消除空值,并以透视格式提供输出。