分拆字符串求和

本文介绍了一种使用T-SQL实现的分拆字符串并按指定字段进行求和的方法。通过创建临时表并插入多条记录,利用递归CTE和字符串函数实现了对字符串中特定元素的拆分及数值字段的汇总。此方法适用于需要处理逗号分隔值并进行聚合运算的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--分拆字符串求和 create table #tb ( id int, col varchar(50), num int ) insert into #tb select 1,'aa,bb,cc',10 union all select 2,'aa,aa,bb',20 union all select 3,'aa,aa,bb',20 union all select 4,'dd,ccc,c',30 union all select 5,'ddaa,ccc',40 union all select 6,'eee,ee,c',50 declare @len int select top 1 @len=len(col)+1 from #tb order by len(col) desc set rowcount @len select id=identity(int,1,1) into # from dbo.syscolumns A,dbo.syscolumns B set rowcount 0 ;with hgo as ( select distinct data=substring(A.col,b.id,charindex(',',A.col+',',b.id)-b.id), A.num,b.id from #tb A,# b where substring(','+A.col,b.id,1)=',' ) select data,sum(num) from hgo group by data

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值