2011-09-05 75 views
0

我不知道的字這更好的方式,但說我有一個表SQL選擇多個不同的列行作爲一列

name, homephone, fax, mobile 
======================================== 
bob,  123,   456, 999 
chris, null,  890, null 

我試圖創建一個SQL語句,將得到我是這樣的

name,  phone 
================ 
bob,  123 
bob,  456 
bob,  999 
chris, 890 
+0

可能未樞使用嗎? – TrevDev

回答

5

如何使用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 
1
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