在MSSQL中使用PIVOT的每个示例都显示使用此功能的用户可以聚合数据。我想利用这个只是简单的调换行列如何将行转换为列
例如,考虑follwoing数据
SELECT 11826 ID,cast('64 ' as varchar(1000)) as answer,75098 QuestionID,2785 CollectionID into #temp
insert into #temp SELECT 11827 ID,cast('Security ' as varchar(1000)) as answer,75110 QuestionID,2785 CollectionID
insert into #temp SELECT 11828 ID,cast('42 ' as varchar(1000)) as answer,75115 QuestionID,2785 CollectionID
insert into #temp SELECT 11829 ID,cast('3/23/2010 12:01:00 AM ' as varchar(1000)) as answer,75119 QuestionID,2785 CollectionID
insert into #temp SELECT 11830 ID,cast('3/25/2010 ' as varchar(1000)) as answer,75120 QuestionID,2785 CollectionID
insert into #temp SELECT 11898 ID,cast('67 ' as varchar(1000)) as answer,75313 QuestionID,2792 CollectionID
insert into #temp SELECT 11899 ID,cast('True ' as varchar(1000)) as answer,75314 QuestionID,2792 CollectionID
insert into #temp SELECT 11900 ID,cast('0 ' as varchar(1000)) as answer,75315 QuestionID,2792 CollectionID
insert into #temp SELECT 11901 ID,cast('[email protected] ' as varchar(1000)) as answer,75316 QuestionID,2792 CollectionID
结果应该得到类似
CollectionID [AnswerFor75098] [AnswerFor75110] [AnswerFor75115] [AnswerFor75315]...
2785 64 Security 42
2792 Null Null Null 67
我一直在尝试与PIVOT,但我不知道这是正确的解决方案。如果是这样,是否有人有我可以使用的提示? 我想我可以在存储过程中公平地做到这一点,但我试图尽可能避免使用游标。
感谢您的帮助
我在那里,过分复杂的事情。我将首先尝试这种方法,然后我会弄糟这个关键点。 – Beta033 2010-05-25 15:45:39