MSSQL 字段分组拼接
时间:2019-09-06
本文章向大家介绍MSSQL 字段分组拼接,主要包括MSSQL 字段分组拼接使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
方法1:缺点,不去重,不去空;见表1
with t as( select 'A' parent, 'A1' child union all select 'A', 'A1' union all select 'A', '' union all select 'A', null union all select 'A', 'A2' union all select 'B', 'B1' union all select 'B', 'B2' union all select 'C', 'C1' union all select 'C', 'C2' ) SELECT parent, STUFF( ( SELECT ','+ child FROM t a WHERE b.parent = a.parent FOR XML PATH('') ),1 ,1, '') children FROM t b GROUP BY parent
表1:
方法2:通过游标来处理,去重,去空。见表2
--定义游标并进行合并处理 declare @t table(parent varchar(100),child varchar(100))--定义结果集表变量 declare my_cursor cursor local for with t1 as( select 'A' parent, 'A1' child union all select 'A', 'A1' union all select 'A', '' union all select 'A', null union all select 'A', 'A2' union all select 'B', 'B1' union all select 'B', 'B2' union all select 'C', 'C1' union all select 'C', 'C2' ) select parent, child from t1 order by parent, child declare @parent_old varchar(100) , @parent varchar(100) , @child varchar(100), @s varchar(100) open my_cursor fetch my_cursor into @parent , @child select @parent_old = @parent , @s='' while @@FETCH_STATUS = 0 begin if @parent = @parent_old begin if charindex(@child, @s)=0 and @child<>'' select @s = @s + ',' + cast(@child as varchar) end else begin insert @t values(@parent_old , stuff(@s,1,1,'')) select @s = ',' + cast(@child as varchar) , @parent_old = @parent end fetch my_cursor into @parent , @child END insert @t values(@parent_old , stuff(@s,1,1,'')) close my_cursor deallocate my_cursor select * from @t
表2:
原文地址:https://www.cnblogs.com/adsoft/p/11474951.html
- android获得ImageView图片的等级
- SqlServer:此数据库处于单用户模式,导致数据库无法删除的处理
- jQuery中排除指定元素,同时选择剩下的所有元素
- windows客户机连接gerrit的一个报错处理
- 装箱与值类型虽然很容易理解,但是在实际使用中,并不总是能100%用对
- Jexus 配置ssl
- 局部打印插件 jquery.PrintArea.js
- FluorineFx应用中“页面长时间不动”导致无法连接的解决办法
- Mysql主从同步(1)-主从/主主环境部署梳理
- mysql主从同步(3)-percona-toolkit工具(数据一致性监测、延迟监控)使用梳理
- 网站压力测试软件WebBench以及压测Jexus
- Gershon Dublon & Nan Zhao:用传感器网络感知世界
- 即日起珠海可用微信乘公交,腾讯乘车码助力智慧城市建设
- 利用mk-table-checksum监测Mysql主从数据一致性操作记录
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解