Sql-从pivot转换列中的行 [英] Sql- Convert row in column from pivot
本文介绍了Sql-从pivot转换列中的行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个查询返回以下
I have a query returning the following
Name | job profile
---------------------
a | Admin
b | User
c | User
d | Employee
e | Admin
f | Employee
我想使用PIVOT(如果可能的话)来做出如此结果
I would like to use PIVOT (if even possible) to make the results like so
Admin | User | Employee
-------------------------
a | b | d
e | c | f
推荐答案
使用 PIVOT和UNPIVOT [ ^ ]
SQL SERVER - PIVOT和UNPIVOT表示例 [ ^ ]
使用UNION添加多个具有聚合MAX的PIVOT ()和MIN()。
Use a UNION to add more than one PIVOT with aggregates MAX() and MIN().
DECLARE @Job TABLE (Name CHAR(1), [Job Profile] VARCHAR (10))
INSERT INTO @Job
(Name, [Job Profile])
VALUES
('a', 'ADMIN'),
('b', 'USER'),
('c', 'USER'),
('d', 'EMPLOYEE'),
('e', 'ADMIN'),
('f', 'EMPLOYEE')
SELECT [ADMIN], [USER], [EMPLOYEE]
FROM (
SELECT *FROM @Job
) J
PIVOT (
MAX(Name) FOR [Job Profile] IN ([ADMIN], [USER], [EMPLOYEE])
) Result
UNION
SELECT [ADMIN], [USER], [EMPLOYEE]
FROM (
SELECT *FROM @Job
) J
PIVOT (
MIN(Name) FOR [Job Profile] IN ([ADMIN], [USER], [EMPLOYEE])
) Result
使用 Dynamic PIVOT 。
这篇关于Sql-从pivot转换列中的行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文