您的位置:首页 > 数据库

如何合并和拆分文本

2012-01-09 07:27 281 查看
有时, 需要合并,拆分文本,其实,方法很多.

以下,合并使用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 手动创建成功.

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql server xml path 2010 c