2011-06-03 74 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