备份一下
create procedure dbo.sp_string_split
@param_string varchar(100),
@split varchar(2)
as
declare @idx int
declare @split_length int
declare @last_string varchar(100)
declare @curr_string varchar(100)
begin
create table #split_str(str varchar(100) null)
set @last_string= @param_string
set @idx=CHARINDEX(@split,@last_string)
set @split_length = char_length(@split)
if(@idx>0)
begin
while(@idx>0)
begin
set @idx=CHARINDEX(@split,@last_string)
if(@idx>0)
begin
set @curr_string = substring(@last_string,1,@idx-@split_length )
set @last_string = substring(@last_string,@idx+@split_length ,100)
end
else begin
set @curr_string = @last_string
end
insert into #split_str(str) values(@curr_string)
end
end
else begin
insert into #split_str(str) values(@last_string)
end
--show data
select * from #split_str
end
test:
exec dbo.sp_string_split '123|333|888', '|'
exec dbo.sp_string_split '123||333||888', '||'
sybase存储过程切割字符串
猜你喜欢
转载自xmx0632.iteye.com/blog/1539356
今日推荐
周排行