use demo
go
/*
将表code的列string中的值提取放到record表中
string 中字符类型为
dsddddd,2222222,222221,3
其中最后一位为标记对于record表中的biaoji
前面的以’,’分割的是值对应record表中value
*/
go
drop proc proc_split_code
go
create proc proc_split_code
as
begin
set nocount on
declare @count int –条数
declare @index int –变量
set @index = 1 –默认
select @count = count(*) from code
–print @count
while (@indexbegin
declare @biaoji int — 标记
declare @string nvarchar(1000)–字符串
declare @temp int –分隔符的位置
declare @star int –开始位置
declare @code nvarchar(100) —
set @star = 0
select @string=reverse(string)
from (
select row_number() over(order by string) as rownumber,* from code
) as a
where rownumber between @index and @index
set @temp=charindex(‘,’,@string,@star)
set @biaoji = substring(@string,@star,@temp)
print @biaoji
set @string = reverse(@string)
set @temp=charindex(‘,’,@string,@star)
set @star = 0
while(@temp>0)
begin
set @temp=charindex(‘,’,@string,@star)
–print @star
–print @temp
if @temp >0
begin
set @code=substring(@string,@star,@temp-@star)
print @code
–插入到相应的表中
insert into record(biaoji,value,time)
values (@biaoji,@code,getdate())
end
set @star=@temp+1
end
–print @index
print @string
set @index = @index+1
end
end
go
exec proc_split_code
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1836934.html