透视没有聚合函数的数据列表

时间:2014-08-28 17:20:44

标签: sql-server pivot

我有以下数据集,它们确定了我们数据库中不同用户的访问权限。但是我需要将其转换为数据集,其中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  | ..... |

Screenshot

1 个答案:

答案 0 :(得分:1)

只需使用MAXMIN作为汇总功能。它们在应用于字符串时通常没有意义,但满足PIVOT语句的条件。

SELECT    user_name,
          [AP],[AM],[AGN],...
FROM      my_table
PIVOT     (
             MAX(access_ind) FOR user_code IN ([AP],[AM],[AGN],...)
          ) pvt

麻烦的是,如果您为用户提供了多个访问条目,则必须确定要保留哪个条目。