0
我有如下表:的SQL Server 2008 R2:透視表
CREATE TABLE pvt
(
cola varchar(10),
colb varchar(10)
)
insert into pvt values('','2');
insert into pvt values('1','3');
insert into pvt values('9','4');
insert into pvt values('8','5');
透視表查詢:
DECLARE @StuffColumn varchar(max)
DECLARE @sql varchar(max)
SELECT @StuffColumn = STUFF((SELECT ','+QUOTENAME(cola)
FROM pvt
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
PRINT(@StuffColumn)
SET @SQL = ' select colb,'+ @StuffColumn +'
from
(
select cola,colb
from pvt
)x
pivot
(
count(cola)
for cola in('[email protected] +')
)p'
PRINT(@SQL)
EXEC(@SQL)
錯誤:
Msg 1038, Level 15, State 4, Line 1
An object or column name is missing or empty. For SELECT INTO statements,
verify each column has a name. For other statements, look for empty alias
names. Aliases defined as "" or [] are not allowed. Change the alias to a valid name.
預期結果:
colb 1 9 8
-------------------
2 1 0 0 0
3 0 1 0 0
4 0 0 1 0
5 0 0 0 1
非常接近!只有count沒有出現在'[empty]'列中。 – Meem 2014-10-18 10:48:45
問題在於如果您有多個空值。 – NMK 2014-10-18 10:48:58
看到我編輯的答案 – Milen 2014-10-18 10:51:48