网上有不少在SqlServer中对字符串拆分成多行的代码,但是找了一圈发现性能无法让人满意,
最终在自己写了一个function 用于处理拆分时的逻辑运算,性能比网上找的快好几倍,
代码如下:
--创建测试表
create table tempTable(
value1 varchar(max)
)
go
--###产生测试数据
declare @val varchar(max)=''
declare @i int=0
while @i<10000--产生10000个值做拼接 可自行修改
begin
set @val=isnull(@val,'')+','+LEFT(LTRIM(ABS(CHECKSUM(NEWID()))),10)
set @i=@i+1
end
set @val=SUBSTRING(@val,2,LEN(@val))
insert into tempTable values(@val)
--############
--调用测试拆分
declare @str varchar(max)
select top 1 @str=value1 from tempTable
select * from splitPro(@str,',') --传入的需要拆分的数据如:aaa,bbb,ccc,ddd,eee,fff,ggg
拆分后效果如下:
方法:splitPro 原码获取地址:Sqlserver长字符串拆分为多行高效-SQLServer文档类资源-CSDN下载