gpt4 book ai didi

sql-server-2005 - 不同的行值作为列 Sql Server

转载 作者:行者123 更新时间:2023-12-04 07:19:52 25 4
gpt4 key购买 nike

我有一个包含 3 列的临时表,如下所示,

    JobID JobType        JobValue
12 HR Jesica
23 MANAGER Ravi
5 MANAGER Jacob
60 EMPLOYEE Kiruan
45 MANAGER Abidam
27 HR Kamsura
21 MANAGER Chio Bin
87 EMPLOYEE Gamanya
22 HR Pradeep
56 HR Hari
67 EMPLOYEE Om
14 MANAGER Kiran




My result table should be like


JobID HR MANAGER EMPLOYEE
12
23
5
60
45
27
21
87
22
56
67
14

Jobvalue 列值应该进入结果集中。

我试过如下。

创建了一个具有不同 Jobtype 行值的临时表。然后使用 while 循环将 JobValue 列值插入该表。

但它看起来很脏。

谁能给我一个好的建议来完成这个。

谢谢,

最佳答案

您应该能够使用 PIVOT获取结果的函数:

select jobid, hr, manager, employee
from yourtable
pivot
(
max(jobvalue)
for jobtype in (hr, manager, employee)
) piv;

参见 SQL Fiddle with Demo .

如果你想在每个jobType下列出jobvalue而不显示jobid,那么你可以使用:

select hr, manager, employee
from
(
select jobtype, jobvalue,
row_number() over(partition by jobtype order by jobid) rn
from yourtable
) d
pivot
(
max(jobvalue)
for jobtype in (hr, manager, employee)
) piv;

参见 SQL Fiddle with Demo

关于sql-server-2005 - 不同的行值作为列 Sql Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17470499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com