热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

sqlserver实现字符串的聚合

关键字:sqlserver2012,FORXMLPATH,连接字符串大家可能在工作中都遇到过需要聚合字符串的情况,例如:实际的表数据如下departname开发部张三开发部李四财务部王二财务部麻子运营部路人甲然后通过聚合,希望得到的结果departname开发

关键字:sqlserver 2012,FOR XML PATH, 连接字符串 大家可能在工作中都遇到过需要聚合字符串的情况,例如: 实际的表数据如下 depart name 开发部 张三 开发部 李四 财务部 王二 财务部 麻子 运营部 路人甲 然后通过聚合,希望得到的结果 depart name 开发

关键字:sqlserver 2012,FOR XML PATH, 连接字符串

大家可能在工作中都遇到过需要聚合字符串的情况,例如:

实际的表数据如下

depart name
开发部 张三
开发部 李四
财务部 王二
财务部 麻子
运营部 路人甲

然后通过聚合,希望得到的结果

depart name
开发部 张三,李四
财务部 王二,麻子
运营部 路人甲

实际上,有三种方法可以实现这样的结果

1,使用自定义方法(function)

2,使用游标(cursor)

3,使用for xml path函数

这里主要介绍第三种,因为理论上代码的复杂度和开销都相对会小一点。

代码如下

select depart, [name]=stuff((select','+[name]from tb t where id = tb.depart for xml path('')) , 1 , 1 , '') from tb groupby depart

推荐阅读
author-avatar
Mr_XieZhiQ
无表面兄弟,不编程!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有