【发布时间】:2014-12-02 04:57:13
【问题描述】:
我有下表,其中包含一些记录。
示例:
表格:最有效
create table ffortest
(
col1 int,
col2 int
)
插入记录:
insert into ffortest values(1,2);
insert into ffortest values(3,4);
insert into ffortest values(5,6);
insert into ffortest values(7,8);
insert into ffortest values(9,2);
insert into ffortest values(1,2);
数据透视表查询:
DECLARE @StuffColumn varchar(max)
DECLARE @sql varchar(max)
SELECT @StuffColumn = STUFF((SELECT ','+QUOTENAME(col1)
FROM ffortest
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
PRINT(@StuffColumn)
SET @SQL = ' select col2,'+ @StuffColumn +'
from
(
select col1,col2
from ffortest
)x
pivot
(
count(col1)
for col1 in( '+@StuffColumn +')
)p'
PRINT(@SQL)
EXEC(@SQL)
错误:在 p 中多次指定了列 '1'。
预期结果是:
col2 1 9 3 5 7
-------------------
2 2 1 0 0 0
4 0 0 1 0 0
6 0 0 0 1 0
8 0 0 0 0 1
【问题讨论】:
标签: sql-server sql-server-2008-r2 pivot