表名是UserData,name列是PRIMARY KEY,我有一个返回以下内容的查询 喜欢
从UserData
中选择名称,jobProfilename | jobProfile
a | Admin b | user c | employee d | Admin e | user f | user g | employee
我想像这样结果(如果可能的话)
user | employee | Admin ___________________________ b | c | a e | g | d f | null | null
答案 0 :(得分:2)
我不确定为什么人们试图关闭这个问题。对我来说似乎是合法的问题而不是引用问题的重复。引用的问题有3列作为输入,而这个问题有两列。所以需要额外的技巧。
-- test data
declare @UserData table (Name varchar(10), JobProfile varchar(10))
insert @UserData
values
('a' , 'Admin'),
('b' , 'user'),
('c' , 'employee'),
('d' , 'Admin'),
('e' , 'user'),
('f' , 'user'),
('g' , 'employee')
-- query
select [user], [employee], [Admin]
from
(
select *, row_number() over (partition by JobProfile order by Name) RowNumber
from @UserData
) as p
pivot
(
min(Name) for JobProfile in ([user], [employee], [Admin])
) as t
order by RowNumber
输出:
user employee Admin
---------- ---------- ----------
b c a
e g d
f NULL NULL
答案 1 :(得分:0)
由于您没有提供太多信息或任何管理转换的规则,我可以给出的唯一答案是检查 PIVOT 功能。