写过程时碰到这么一个问题需要在库里处理N条数据不想在程序里循环造成多次访问数据库
而SQL Sever又不支持数组参数尝试了两种方法在此做笔记如下(省略了单条数据的处理用#temp是为了显示结果)
利用replace
create table #temp
(
ss varchar() not null
)
declare @str varchar()
declare @result varchar()
set @str=aaabbcdeffffff
set @result = insert into #temp(ss) select +replace(@strunion select)+
exec(@result)
select * from #temp
利用charindex和substring
create table #temp
(
ss varchar() not null
)
declare @str varchar()
declare @curr int
declare @prev int
set @str=aaabbcdeffffff
set @curr=
set @prev=
while @prev < len(@str)
begin
set @curr=charindex(@str@prev)
if @curr>@prev
insert #temp select substring(@str@prev@curr@prev)
else
begin
insert #temp select substring(@str@prevlen(@str)@prev+)
break
end
set @prev=@curr+
end
select * from #temp