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

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 ', ' + Product
        FROM Orders AS O
        WHERE O.CustomerID = Orders.CustomerID
        FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 2, '') AS Products
FROM Orders
GROUP BY CustomerID;

说明

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


http://www.kler.cn/a/461337.html

相关文章:

  • ESP32-S3遇见OpenAI:OpenAI官方发布ESP32嵌入式实时RTC SDK
  • NLP 复习大纲
  • 简单使用linux
  • SweetAlert2 - 漂亮可定制的 JavaScript 弹窗
  • SpringCloud源码分析-nacos与eureka
  • 打造三甲医院人工智能矩阵新引擎(四):医疗趋势预测大模型篇 EpiForecast与DeepHealthNet合成应用
  • python 快速排序(Quick Sort)
  • 本地LLM部署--llama.cpp
  • 【Qt笔记】QLineEdit控件详解
  • 当下热点系列 篇二:大消费题材解析和股票梳理
  • 动手学深度学习-深度学习计算-3延后初始化
  • 它真的可以绕过 ICloud 激活吗
  • redis的使用
  • 伏羲0.15(文生图)
  • Windows10开机登录系统后黑屏只有鼠标可以动可以唤起任务管理器
  • 【济南】《政务信息化项目软件开发费用测算指南》-省市费用标准解读系列35
  • 常见的文件外发安全
  • 怎样在 Word 文档中插入附件(其他文件)?
  • 【网络云SRE运维开发】2024第52周-每日【2024/12/31】小测-计算机网络参考模型和通信协议的理论和实操考题
  • 若依框架之简历pdf文档预览功能
  • BinaryMoS: 提升二值化大语言模型的创新技术
  • 大型ERP系统GL(总账管理)模块需求分析
  • OpenCV-Python实战(14)——轮廓拟合
  • gunicorn开发时候如何自动重启
  • 标准库以及HAL库——按键控制LED灯代码
  • 植物大战僵尸杂交版3.0.2版本