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