gpt4 book ai didi

也许是 SQL Server PIVOT?

转载 作者:行者123 更新时间:2023-12-02 17:17:30 25 4
gpt4 key购买 nike

SELECT Name1, Name2, Value FROM mytable 给出以下结果集:

Name1 Name2 ValueA     P1     1A     P2     1A     P3     2B     P1     3B     P2     1B     P4     1

我如何将其翻译为:

       A     BP1     1     4P2     1     1P3     2     nullP4     null  1

谢谢

最佳答案

由于您使用的是 SQL Server 2005,因此代码如下:

DECLARE @cols VARCHAR(1000)
DECLARE @sqlquery VARCHAR(2000)

SELECT @cols = STUFF(( SELECT distinct ',' + QuoteName([Name1])
FROM myTable FOR XML PATH('') ), 1, 1, '')


SET @sqlquery = 'SELECT * FROM
(SELECT Name2, Name1, Value
FROM myTable ) base
PIVOT (Sum(Value) FOR [Name1]
IN (' + @cols + ')) AS finalpivot'

EXECUTE ( @sqlquery )

无论您有多少种不同的状态,这都会起作用。它使用 PIVOT 动态组合查询。使用动态列执行 PIVOT 的唯一方法是动态组合查询,这可以在 SQL Server 中完成。

其他示例:

关于也许是 SQL Server PIVOT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7182106/

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