当前位置: 首页 > news >正文

SQL Server实现将分组的其他字段数据拼接成一条数据

在 SQL Server 中,可以使用 STRING_AGG 函数(SQL Server 2017 及更高版本支持)将分组的其他字段数据拼接成一条数据。以下是示例代码:

假设有一个表 Orders,结构如下:

OrderIDCustomerIDProduct
1C001Apple
2C001Banana
3C002Orange
4C002Grape
5C001Mango

需要按照 CustomerID 分组,将每个客户的产品(Product 字段)拼接到一起。

使用 STRING_AGG

SELECT CustomerID,STRING_AGG(Product, ', ') AS Products
FROM Orders
GROUP BY CustomerID;

输出

CustomerIDProducts
C001Apple, Banana, Mango
C002Orange, Grape

说明

STRING_AGG(字段, 分隔符):将组内数据按指定的分隔符拼接成字符串。
GROUP BY:按 CustomerID 分组。

如果是 SQL Server 2016 或更早版本

可以使用 FOR XML PATH 方法:

SELECT CustomerID,STUFF((SELECT ', ' + ProductFROM Orders AS OWHERE O.CustomerID = Orders.CustomerIDFOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 2, '') AS Products
FROM Orders
GROUP BY CustomerID;

说明

FOR XML PATH(‘’):将数据转换为 XML 格式但不加根节点。
STUFF:用于移除多余的逗号(第一个字符)。

http://www.lryc.cn/news/512698.html

相关文章:

  • 学习笔记 --C#基础其他知识点(同步和异步)
  • 一维、线性卡尔曼滤波的例程(MATLAB)
  • 极品飞车6的游戏手柄设置
  • FreeRTOS Lwip Socket APi TCP Server 1对多
  • 逆袭之路(11)——python网络爬虫:原理、应用、风险与应对策略
  • KOI技术-事件驱动编程(Sping后端)
  • LVS 负载均衡原理 | 配置示例
  • Hive分区再分桶表
  • 从 Coding (Jenkinsfile) 到 Docker:全流程自动化部署 Spring Boot 实战指南(简化篇)
  • Linux官文转载-- Linux 内核代码风格
  • Qt监控系统放大招/历经十几年迭代完善/多屏幕辅屏预览/多层级设备树/网络登录和回放
  • 【贪心算法】贪心算法七
  • LangChain教程 - 表达式语言 (LCEL) -构建智能链
  • 使用Locust对Redis进行负载测试
  • HIVE数据仓库分层
  • 数据结构与算法之动态规划: LeetCode 2407. 最长递增子序列 II (Ts版)
  • 电子电气架构 --- 什么是自动驾驶技术中的域控制单元(DCU)?
  • html5css3
  • FPGA多路红外相机视频拼接输出,提供2套工程源码和技术支持
  • python实战(十二)——如何进行新词发现?
  • 动手做计算机网络仿真实验入门学习
  • 完整的 FFmpeg 命令使用教程
  • Leetcode 3405. Count the Number of Arrays with K Matching Adjacent Elements
  • Springboot(五十六)SpringBoot3集成SkyWalking
  • 有没有免费提取音频的软件?音频编辑软件介绍!
  • Linux 中查看内存使用情况全攻略
  • 【SQL Server】教材数据库(3)
  • 使用 ECharts 与 Vue 构建数据可视化组件
  • Yocto 项目 - 共享状态缓存 (Shared State Cache) 机制
  • Unity3D仿星露谷物语开发9之创建农场Scene