gpt4 book ai didi

sql - 数据透视查询中的 CSV 值

转载 作者:行者123 更新时间:2023-12-01 13:46:43 28 4
gpt4 key购买 nike

这是我的 table

Manger  EmpID
ABC 5
ABC 6
XYZ 2
XYZ 3

如果我使用数据透视查询,我得到的结果低于输出。

 ABC    XYZ
6 3

但实际上我想要这样的输出。

  ABC   XYZ
5,6 2,3

我不想要聚合值,我想要 csv 值。谁能帮我得到这样的输出。这是我的 sql 代码

    Select * 
INTO #TEMP
FROM
(SELECT 'ABC' As Manger , 5 as EmpID
union
SELECT 'ABC' As Manger , 6 as EmpID
union
SELECT 'XYZ' As Manger , 2 as EmpID
union
SELECT 'XYZ' As Manger , 3 as EmpID
) A

select *
FROM #TEMP



select *
FROM #TEMP
PIVOT
(
MAX([EmpID])
FOR Manger IN ([ABC],[XYZ])
) as P

drop table #TEMP

最佳答案

试试这个:

SELECT * 
FROM (
SELECT DISTINCT Manager,
STUFF((SELECT ',' + CAST(EmpID AS VARCHAR(MAX)) AS [text()]
FROM #TEMP AS t2
WHERE t1.Manager = t2.Manager
FOR XML PATH('')), 1, 1, '') AS EmpID
FROM #TEMP AS t1) AS SRC
PIVOT
(
MAX([EmpID])
FOR Manager IN ([ABC],[XYZ])
) as P

诀窍是在应用 PIVOT 之前预处理您的表。上面的查询使用 FOR XML PATH为每个 Manager 创建一个 EmpID 值的逗号分隔列表。

Demo here

关于sql - 数据透视查询中的 CSV 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35459442/

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