在SQL中实现类似高级语言中Split()函数的功能

在程序设计语言中都有提供Split()函数,用起来,甚是方便,在SQL中也可以实现类似功能
/*
--程序设计语言中都有Split的分隔函数,现用SQL实现其类似的功能
--EG:
--用法:select * from dbo.FnSpli('A:B:C:D:E',':')
*/

create function Fnsplit(@SourceSql varchar(8000),@StrSeprate varchar(10))
returns @temp table(a varchar(100))
--实现split功能 的函数
--
date    :2005-4-20
--
Author :Domino
as 
begin
    
declare @i int
    
set @SourceSql=rtrim(ltrim(@SourceSql))
    
set @i=charindex(@StrSeprate,@SourceSql)
    
while @i>=1
    
begin
        
insert @temp values(left(@SourceSql,@i-1))
        
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
        
set @i=charindex(@StrSeprate,@SourceSql)
    
end
    
if @SourceSql<>'\'
       
insert @temp values(@SourceSql)
    
return 
end
posted on 2005-11-03 11:17  蓝枫叶  阅读(787)  评论(1)    收藏  举报