SQL自定义函数,分隔符

--------------建立函数

CREATE function [dbo].[split]

(

@str varchar(4500),

@sep varchar(1)

)

returns @t table(id int identity(1,1),col varchar(4500))

as

begin

--分别定义了 目前位置,分隔符开始和字符串长度和,当前获取的字符串

declare @posi int,@start int,@str_leg int,@gchar varchar(2),@mingzhong int

set @str_leg=len(@str)

set @posi=0

set @start=0

set @mingzhong=0

while(@posi<=@str_leg)

begin

set @gchar=substring(@str,@posi,1)

if(@gchar=@sep)

begin

insert into @t values(substring(@str,@start+1,@posi-@start-1))

set @start=@posi

end

set @posi=@posi+1

end

return

end

 

 

 

------------执行,以:为分隔符查询结果

  select * from dbo.split('234;32423;;2342;a;b;234234;23;',';')

posted @ 2016-12-27 20:47  yongfajun  阅读(500)  评论(0编辑  收藏  举报