我正在使用 SQL Server 2008 R2,我有这个简单的表
我试图做的是从此表中进行选择并获得以下结果
x | 1 | 2 | 3
--+------------+-------------+------------
1 | first 1 | first 2 | first 3
2 | Second 1 | second 2 | second 3
我以为可以做到 PIVOT
我对PIVOT
使用 PIVOT 和Count()
. SUM()
,AVG()
这在我的表中不起作用,因为我试图PIVOT
在varchar
列上
问题我是否使用了正确的功能?或者我还需要知道什么来解决这个问题?任何帮助将不胜感激
我试过这个没有运气
PIVOT(count(x) FOR value IN ([1],[2],[3]) )as total
PIVOT(count(y) FOR value IN ([1],[2],[3]) )as total // This one is the nearest
of what i wand but instead of the column value values i get 0
这是查询是否有人对其进行测试
CREATE TABLE #test (x int , y int , value Varchar(50))
INSERT INTO #test VALUES(1,51,'first 1')
INSERT INTO #test VALUES(1,52,'first 2')
INSERT INTO #test VALUES(1,53,'first 3')
INSERT INTO #test VALUES(2,51,'Second 1')
INSERT INTO #test VALUES(2,52,'Second 2')
INSERT INTO #test VALUES(2,53,'Second 3')
SELECT * FROM #test
PIVOT(count(y) FOR value IN ([1],[2],[3]) )as total
DROP TABLE #test