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

SQL pivot透视查询如何实现单行合并展示多条数据

实现方案

默认PIVOT仅支持聚合单值返回,你需要先对同日期的多条记录做字符串拼接聚合,再执行透视操作即可得到预期结果,不同数据库的实现语法略有区别:

通用思路(兼容所有数据库)

不用PIVOT语法也可以通过条件聚合实现,兼容性最高:

SELECT
  'schedule' AS playtime,
  -- 按日期拼接对应时段活动,分隔符可自定义
  GROUP_CONCAT(CASE WHEN day = 'monday' THEN CONCAT(time, ' - ', act) END SEPARATOR '<br>') AS monday,
  GROUP_CONCAT(CASE WHEN day = 'tuesday' THEN CONCAT(time, ' - ', act) END SEPARATOR '<br>') AS tuesday
FROM 你的表名
GROUP BY playtime;

不同数据库差异说明

  • MySQL 直接用上面的通用语法即可,GROUP_CONCAT是原生函数
  • PostgreSQL / SQL Server 把GROUP_CONCAT替换为STRING_AGG,其它逻辑不变
  • Oracle 把GROUP_CONCAT替换为LISTAGG(拼接内容, '<br>') WITHIN GROUP (ORDER BY time)即可

注意事项

  • 记得把代码里的你的表名替换为实际业务表名
  • 如果日期是动态值(不止周一、周二),需要结合动态SQL实现动态列透视
  • 如果你不需要HTML换行,把<br>替换为空格、逗号等其它分隔符即可

内容的提问来源于stack exchange,提问作者ran-de-vouz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 00:18:02