SQL选择多个不同的列行作为一列
问题描述:
我不知道的字这更好的方式,但说我有一个表SQL选择多个不同的列行作为一列
name, homephone, fax, mobile
========================================
bob, 123, 456, 999
chris, null, 890, null
我试图创建一个SQL语句,将得到我是这样的
name, phone
================
bob, 123
bob, 456
bob, 999
chris, 890
答
如何使用UNION?说你的表叫做目录。喜欢的东西:
SELECT name, homephone AS phone FROM Directory WHERE homephone IS NOT NULL
UNION
SELECT name, fax AS phone FROM Directory WHERE fax IS NOT NULL
UNION
SELECT name, mobile AS phone FROM Directory WHERE mobile IS NOT NULL
答
select T.name, P.phone
from YourTale as T
cross apply (
select homephone union all
select fax union all
select mobile
) as P(phone)
where p.phone is not null
+0
+1我比罗伯特的解决方案更喜欢这个,但罗伯特的也很出色。 – deutschZuid
可能未枢使用吗? – TrevDev