2011-06-03 78 views
0

如何將行轉換爲column.I具有以下結果集。如何將行值轉換爲sql server 2005中的列

UserID VendorName QuestionText AnswerText 
1   KK   abc1   ans1 
1   KK   abc2   ans2 
1   KK   abc3   ans3 
2   JJ   abc1   ans2 
2   JJ   abc2   ans3 
2   JJ   abc3   ans1 

輸出應該是:

UserID VendorName abc1 abc2 abc3 
1    KK ans1 ans2 ans3 
2    JJ ans2 ans3 ans1 

感謝。

+2

這已經**問**和** **回答這裏至少一個極大倍SO - 我會建議「的SQL Server PIVOT」的搜索 - 你應該有**噸答案**! – 2011-06-03 06:48:50

+2

重複[如何在SQL中樞軸](http://stackoverflow.com/questions/1473272/how-to-pivot-in-sql) – 2011-06-03 06:49:55

+0

我試過使用樞軸,但它需要任何聚合函數(計數,總和)裏面代碼block.but我的列AnswerText有文本值不是任何整數。所以如何用PIVOT做到這一點。 – Sukhjeevan 2011-06-03 06:58:57

回答

1
SELECT UserID, VendorName, [abc1], [abc2], [abc3] 
FROM Questions 
PIVOT (MAX(AnswerText) 
    FOR QuestionText IN ([abc1], [abc2], [abc3]) 
) AS pvt 
2
SELECT grsid,contactid, [1] rejectcode, [12] rejectcode, [89] rejectcode 
FROM **rjct1** 
PIVOT (MAX(rejectcode) 
    FOR rejectcode IN ([1] , [12], [89]) 
) AS pvt