sybase存储过程切割字符串

备份一下

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', '||'

猜你喜欢

转载自xmx0632.iteye.com/blog/1539356