Вы можете использовать любой символ (UTF8) в имени поля, который не является особым (содержит «.» или начинается с «$»).
blockquote>https://jira.mongodb.org/browse/SERVER-3229
https://stackoverflow.com/a/7976235/311220
Как правило, лучше придерживаться буквенных цифр в нижнем регистре с подчеркиванием.
Вы можете попробовать следующий динамический сводный запрос.
create table temp
(
PageId int,
PageName Varchar(20),
IsAccess int
)
insert into temp values (1, 'Dashboard1', 1), (2, 'Dashboard2', 0), (3, 'Dashboard3', 1)
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX);
select @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.PageName)
FROM temp c
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT ' + @cols + ' from
(
select IsAccess, PageName
from temp
) x
pivot
(
max(IsAccess)
for PageName in (' + @cols + ')
) p '
execute(@query)
Выходные данные, как показано ниже
Dashboard1 Dashboard2 Dashboard3
----------------------------------
1 0 1