Sql server 透视不带聚合函数的数据列表

Sql server 透视不带聚合函数的数据列表,sql-server,pivot,Sql Server,Pivot,我有下面显示的数据集,它决定了数据库中不同用户的访问权限。但是,我需要将其转换为一个数据集,其中用户代码是列标题,Y/N数据是字段值 您知道我将如何在MSSQL中实现这一点吗?我曾研究过PIVOT函数,但似乎这对我来说不起作用,除非我错过了一些重要的东西 提前谢谢 我想要的输出示例: --------------------------------------------------------------- | Area | AP | AM | AGN | AH

我有下面显示的数据集,它决定了数据库中不同用户的访问权限。但是,我需要将其转换为一个数据集,其中用户代码是列标题,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  | ..... |

只需使用
MAX
MIN
作为聚合函数即可。当应用于字符串时,它们通常没有意义,但满足PIVOT语句的条件

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

问题在于,如果一个用户有多个访问条目,则必须决定保留哪个条目。

只是好奇,为什么您认为PIVOT不起作用?这正是PIVOT的用途。您是否尝试过PIVOT函数?您可以使用
PIVOT
,您只需要使用正确的聚合函数(在本例中可以是
MIN
MAX
),您是对的。正常枢轴受到限制,在这种情况下,作为扩展元素的
用户\u code
受到限制。您必须使用动态轴。对于前:这不是他想要的。在此正常枢轴中,扩展元素受到限制,在本例中为
User\u code
。他将不得不使用动态旋转。