在以下情况下需要查询帮助。
表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的输出。将不考虑所有空值。最好的方法是什么?
有人可以帮助我查询如何执行此操作。非常感谢
答案 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
这将自动消除空值,并以透视格式提供输出。