在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
/*
--程序设计语言中都有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
浙公网安备 33010602011771号