Запрос на создание таблицы карты в матричной таблице - PullRequest
0 голосов
/ 16 октября 2019

У меня есть 1 таблица карт

Group Task
----- -----
Admin Add
Admin Edit
Admin Delete
Admin View
User  View

Мне нужно сгенерировать ее в матричной таблице, например

Task    Admin   User
------  ------  ------
Add     Yes     No
Edit    Yes     No
Delete  Yes     No
View    Yes     Yes

Будет полезно, если кто-нибудь подскажет, как SQL Server может генерировать этот вывод

1 Ответ

2 голосов
/ 16 октября 2019

Использовать условное агрегирование:

select
    task,
    max(case when [group] = 'Admin' then 'Yes' else 'No' end) Admin,
    max(case when [group] = 'User'  then 'Yes' else 'No' end) User
from mytable
group by task

Это работает, потому что 'Yes'> 'No'.

...