我有以下数据集,它们确定了我们数据库中不同用户的访问权限。但是我需要将其转换为数据集,其中user_code是列标题,而Y / N数据是字段值。
你知道如何在MSSQL中实现这个目标吗?我看了一下PIVOT功能,但似乎这对我来说不起作用,除非我遗漏了一些重要的东西!
提前致谢。
我想要的输出示例:
---------------------------------------------------------------
| Area | AP | AM | AGN | AH | AUT | AR | etc...|
---------------------------------------------------------------
---------------------------------------------------------------
| Accounts Team | N | Y | N | Y | N | Y | ..... |
---------------------------------------------------------------
| Administration Team | Y | N | Y | N | N | N | ..... |
答案 0 :(得分:1)
只需使用MAX
或MIN
作为汇总功能。它们在应用于字符串时通常没有意义,但满足PIVOT语句的条件。
SELECT user_name,
[AP],[AM],[AGN],...
FROM my_table
PIVOT (
MAX(access_ind) FOR user_code IN ([AP],[AM],[AGN],...)
) pvt
麻烦的是,如果您为用户提供了多个访问条目,则必须确定要保留哪个条目。