2015-04-18 73 views
1

我有10列的表,我的查詢總是隻給我1個記錄。 現在我想將這個單個記錄轉換爲鍵值對。SQL將前1行結果轉換爲列

例:SELECT * FROM dbo.Table OUTPUT:

col1 col2 col3 col4 col5 
============================ 
val1 val2 val2 val4 val5 

期待輸出中如下

name value 
============== 
col1  val1 
col2  val2 
col3  val3 
col4  val4 
col5  val5 

請建議如何做到這一點。

非常感謝

回答

2

假設你列一個)固定和b)相同類型的,你可以用UNPIVOT實現這個翻譯:

select name, value 
from MyTable 
unpivot 
(
    name 
    for Value in ([Col1], [Col2], [Col3], [Col4], [Col5]) 
) x; 

SqlFiddle example here