Heim >Datenbank >MySQL-Tutorial >sql 2005 字符函数实例与应用实例

sql 2005 字符函数实例与应用实例

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 17:47:261164Durchsuche

sql 2005 字符函数实例与应用实例

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 (@index begin
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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn