--Split 表函数将一个字符串按指定分隔符进行分割,返回一个表。
create function split(
    @string varchar(255),--待分割字符串
    @separator varchar(255)--分割符
)returns @array table(item varchar(255))
as
begin
    declare @begin int,@end int,@item varchar(255)
    set @begin = 1
    set @end=charindex(@separator,@string,@begin)
    while(@end<>0)
    begin
        set @item = substring(@string,@begin,@end-@begin)
        insert into @array(item) values(@item)
        set @begin = @end+1
        set @end=charindex(@separator,@string,@begin)
    end
    set @item = substring(@string,@begin,len(@string)+1-@begin)
    if (len(@item)>0)
        insert into @array(item) values(substring(@string,@begin,len(@string)+1-@begin))
    return
end



使用:


select * from dbo.split('a,b,c,d',',')


或者(待分割字符串末尾多了个逗号)


select * from dbo.split('a,b,c,d,',',')




参考资料:  sql server中实现split功能   http://www.studyofnet.com/news/864.html