1
我使用动态数据透视作为此示例,它工作正常。动态数据透视:字符中变换数(字段)的方式
create table formazione (
persona nvarchar(20),
corsi nvarchar(20)
)
insert into formazione values ('mario', 'corso1');
insert into formazione values ('giovanni', 'corso1');
insert into formazione values ('antonio', 'corso2');
insert into formazione values ('marco', 'corso2');
insert into formazione values ('giacomo', 'corso3');
insert into formazione values ('andrea', 'corso3');
select * from formazione;
declare @col as nvarchar(max),
@query as nvarchar(max);
set @col = stuff((
select distinct ',' + QUOTENAME(corsi) from formazione FOR XML PATH(''), type)
.value('.', 'nvarchar(max)'),1,1,'');
set @query = 'select persona, ' + @col +
' from formazione
pivot (
count(corsi) for corsi in (' + @col + ')
) pvt'
execute (@query);
结果是
persona | corso1 | corso2 | corso3
------ | ----------- | --------- | ------------
andrea | 0 | 0 | 1
antonio | 0 | 1 | 0
giacomo | 0 | 0 | 1
giovanni | 1 | 0 | 0
marco | 0 | 1 | 0
mario | 1 | 0 | 0
我想获得这样的
persona | corso1 | corso2 | corso3
------ | ----------- | --------- | ------------
andrea | | | x
antonio | | x |
giacomo | | | x
giovanni | x | |
marco | | x |
mario | x | |
我想改变计数(科西)结果的结果:1,以 “×” ,0为空。只有两个结果(你不能得到更多的结果)。 我认为我必须使用“的情况下,当 ...”的声明,但我不知道如何。
任何帮助,将不胜感激。 在此先感谢 MSSQL