Sql-从pivot转换列中的行 [英] Sql- Convert row in column from pivot

查看:57
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆