假设我有一个简单的选择查询,它返回以下内容:
ID Name1 Name2 Description1 Description2 Notes1 Notes2
1 A B AA BB AAA BBB
2 C D CC DD CCC DDD
我想按如下方式返回数据集:
ID ColumnName 1st 2nd
1 Name A B
1 Description AA BB
1 Notes AAA BBB
2 Name C D
2 Description CC CC
2 Notes DDD DDD
在sql server 2008-r2中以任何方式执行此操作? 看起来这是PIVOT的工作,但是对于如何用PIVOT实现这一点感到困惑
答案 0 :(得分:3)
你可以使用这个,假设这些值是静态的,或者不是那么多,用你的实际值修补它并不太痛苦:
SELECT ID, 'Name' ColumnName, Name1 '1st', Name2 '2nd'
FROM YourTable
UNION
SELECT ID, 'Description' ColumnName, Description1 '1st', Description2 '2nd'
FROM YourTable
UNION
SELECT ID, 'Notes' ColumnName, Notes1 '1st', Notes2 '2nd'
FROM YourTable
为什么数据规范化如此重要的另一个很好的例子。