SELECT ID, PHONE1, PHONE2, PHONE3, EMAIL1, EMAIL2, EMAIL3, EMAIL4
FROM (SELECT ...)
如何将其转入此内容?
*ID | PHONE | EMAIL*
SELECT DISTINCT ID, PHONE, EMAIL
FROM ...
我可以做多个选择和UNION
但我不知道是否有更好的方法。我的查询就像400行一样,做多个联合会一团糟!
答案 0 :(得分:1)
正如bluefeet所说,要将列转换为行,您需要使用unpivot。 在你的情况下,你应该做两次手机,电话和电子邮件。类似的东西:
SELECT id,phone,email FROM (
select id,phone,EMAIL1, EMAIL2, EMAIL3, EMAIL4 from ...
unpivot (
phone for p1
in (PHONE1, PHONE2, PHONE3)
))
unpivot (
email for e1
in (EMAIL1, EMAIL2, EMAIL3, EMAIL4)
);