如何合并和拆分文本

有时, 需要合并,拆分文本,其实,方法很多.

以下,合并使用apply,拆分使用clr函数,用一个cte体现:

use AdventureWorksDW2008R2 go with t(id,name) as ( select c.ProductCategoryKey, b.name from dbo.DimProductCategory c cross apply( select ','+CONVERT(nvarchar(20),s.EnglishProductSubcategoryName) from dbo.DimProductSubcategory s where c.ProductCategoryKey=s.ProductCategoryKey order by s.EnglishProductSubcategoryName for xml path (''),type ) a(n) cross apply( select STUFF(a.n.value('./text()[1]','nvarchar(max)') ,1,1,'') ) b(name) ) select t.id,name,pos,element from t cross apply CLRUtilities.dbo.SplitCLR(name,',')


结果如下:

看以下执行计划:

clr函数要快于xml,udf.

提示:

需要注意的是,使用vs2010自动创建和部署clr到sql server,没有成功,主要问题是,创建assemblies可以, 创建函数错误,'cannot find type ?? in assemblies ??',

试验namespace,[]等方法,没有解决.最后, sql server 手动创建成功.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值