我有一个表,里面有数据,
Cars:
id | name
----------
1 | Buick
2 | Honda
3 | Toyota
我想在存储过程中做的就是得到这样的结果:
Temp Table:
Buick | Honda | Toyota
----------------------
我意识到它没有任何价值,但我只想首先获得这一部分。
我猜这将涉及某种临时表。
使用MS SQL 2005。
我有一个表,里面有数据,
Cars:
id | name
----------
1 | Buick
2 | Honda
3 | Toyota
我想在存储过程中做的就是得到这样的结果:
Temp Table:
Buick | Honda | Toyota
----------------------
我意识到它没有任何价值,但我只想首先获得这一部分。
我猜这将涉及某种临时表。
使用MS SQL 2005。
您是否在寻找枢纽?
这是一个基于您的示例修改的MSDN示例的示例(略作设计):
SELECT 'Count' AS Header,
[Toyota], [Buick], [Honda]
FROM (SELECT id, Name FROM Cars) AS SourceTable
PIVOT( COUNT(ID) FOR Name IN ([Toyota], [Buick], [Honda])) AS PivotTable
如果只有3列3行,则此方法有效。 对于真正的行到列的转换,您只有动态SQL或在客户端代码中完成
– gbnMarch 31, 2009 17:16
那么您想要做的就是获取不同汽车的名称,并将它们自己命名为列名称?
– TStamperMarch 31, 2009 16:45