sql server 多行数据合并一行显示

在 SQL Server 中,可以使用 STUFF 和 FOR XML PATH 进行多行合并成一行。例如,假设有一个表名为 sys_role_permission ,其中包含role_id和role_permission_id:

以下查询将在 role_id 列上分组,将role_permission_id合并成一行:

SELECT role_id, STUFF((SELECT ', ' + permission_id
                        FROM sys_role_permission o2
                        WHERE o2.role_id = o1.role_id
                        FOR XML PATH('')), 1, 2, '') AS permission_id
FROM sys_role_permission o1
GROUP BY role_id

在STUFF函数中,第一个参数指定要插入的位置,第二个参数指定要从第一个参数指定的位置开始删除的字符数,第三个参数指定要插入的新值。在此查询中,使用 FOR XML PATH 将每个产品名称转换为逗号分隔的字符串,然后使用 STUFF 将第一个逗号删除并将所有产品名称合并成一个字符串。最后,使用 GROUP BY 在 role_id 列的基础上进行分组。

相关推荐

  1. 【Python】Excelsheet逐合并一个sheet

    2023-12-07 16:20:08       41 阅读
  2. sql~ 将一行转为

    2023-12-07 16:20:08       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-07 16:20:08       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-07 16:20:08       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-07 16:20:08       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-07 16:20:08       20 阅读

热门阅读

  1. 传导电流密度方向与磁矢位方向相同

    2023-12-07 16:20:08       25 阅读
  2. 【FPGA图像处理实战】- 彩色图像灰度化

    2023-12-07 16:20:08       40 阅读
  3. TCP Socket API 讲解,以及回显服务器客户端的实现

    2023-12-07 16:20:08       24 阅读
  4. 关于在PyTorch中使用cudnn.benchmark= True

    2023-12-07 16:20:08       41 阅读
  5. 基于超声技术的气体流量测量仪设计

    2023-12-07 16:20:08       36 阅读
  6. Python 读取电子发票PDF 转成Excel

    2023-12-07 16:20:08       38 阅读
  7. 【Linux内核源码】进程管理模块

    2023-12-07 16:20:08       28 阅读
  8. 传纸条(算法题)

    2023-12-07 16:20:08       42 阅读
  9. ES6知识点

    2023-12-07 16:20:08       34 阅读