--------------建立函数
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;',';')