You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server动态PIVOT行转列如何添加party作为结果首列

SQL行转列添加分类首列解决方案

你只需要调整动态SQL的查询字段列表,将party字段加在最前面即可,修改后的完整代码如下:

DECLARE @cols AS NVARCHAR(MAX),
@query  AS NVARCHAR(MAX)

select @cols = STUFF((SELECT distinct ',' + QUOTENAME(dateasint) 
                from #t
                group by dateasint
               
        FOR XML PATH(''), TYPE
        ).value('.', 'NVARCHAR(MAX)') 
    ,1,1,'')

-- 仅修改此处SELECT部分,新增party作为首列
set @query = N'SELECT party, ' + @cols + N' from 
         (
            select party, total, dateasint
            from #t
            
        ) x
        pivot 
        (
            max(total)  
            for dateasint in (' + @cols + N')
        ) p '

exec sp_executesql @query;

调整说明

  • 原代码动态拼接的SELECT语句只包含了日期列,缺少party字段。PIVOT运算的行分组依据就是子查询中除聚合字段、透视图列之外的字段,也就是这里的party,只需显式声明将其放在查询结果第一列即可。
  • 调整后运行结果第一列为所有party分类,后续列对应各dateasint取值,单元格为对应日期下的total数值,完全符合需求。

内容的提问来源于stack exchange,提问作者Barrassment

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 21:48:00