我尝试创建一个仅包含字符串的数据透视表.
这是我表的简单版本:
CREATE TABLE SecurityGroup (GroupName VARCHAR(20), SecLevel VARCHAR(20), Power VARCHAR(20))
INSERT INTO SecurityGroup
SELECT 'GroupA','Level1','read'
UNION
SELECT 'GroupA','Level2','write'
UNION
SELECT 'GroupA','Level3','read'
UNION
SELECT 'GroupA','Level4','read'
UNION
SELECT 'GroupA','Level4','write'
Run Code Online (Sandbox Code Playgroud)
我想使用PIVOT函数来获取以下Resultset
期望
GroupName Level1 Level2 Level3 Level4
GroupA read write read read
GroupA read write read write
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是Level1 - Level3的值只存在1次,而Level4有2个不同的值.所以我总是得到这个Resultset:
现实
GroupName Level1 Level2 Level3 Level4
GroupA read write read read
GroupA NULL NULL NULL write
Run Code Online (Sandbox Code Playgroud)
我正在使用此代码
SELECT
[GroupName],
[Level1],
[Level2],
[Level3],
[Level4]
FROM
(SELECT
[GroupName],
[SecLevel],
[Power],
ROW_NUMBER() OVER(PARTITION BY [GroupName], …Run Code Online (Sandbox Code Playgroud)