在SQLSERVER里写了一个Split函数

发表于:2007-06-07来源:作者:点击数: 标签:
因查询统计需要,今天早上在 SQL SERVER里写了一个类似于Split的函数,如下 create function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10)) returns @temp table(a varchar(100)) --实现split功能 的函数 --date :2005-4-20 --Author :Domino

因查询统计需要,今天早上在SQLSERVER里写了一个类似于Split的函数,如下

create function f_split(@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

用法:select * from dbo.f_split('A:B:C:D:E',':')


原文转自:http://www.ltesting.net