自定义SQL中的SplitString函数

SQL Server中貌似没有Split函数,不能实现将某个字符串按照某个特定的字符分隔,在这里,提供一个自定义SQL函数,实现Split功能,当然,返回数组是不可能滴,你懂的...

/******************************************************************************

**  功能:将指定的字符串按照指定的分隔符分割,返回指定索引的子字符串

**  作者:Danny,Li ([email protected])

**  日期:2011-08-19

*******************************************************************************

**  返回值列表

****************************

**  返回值        涵义

**  -------        ------------------------------------------------------

**  @Result        指定索引的子字符串(索引从0开始)

**

*******************************************************************************/

CREATE FUNCTION dbo.fun_SplitString

(

    @Expression VARCHAR(8000),    -- 欲处理的字符串

    @SplitChar CHAR(1),            -- 分隔符

    @Index INT                    -- 取值索引

)

Returns varchar(255)

AS

BEGIN

DECLARE @Result varchar(255),@TempIndex INT,@Temp INT,@Idx INT

SET @TempIndex = 0

SET @Idx = 0

WHILE @TempIndex>=0

BEGIN

    SET @Temp = CHARINDEX(@SplitChar,@Expression,@TempIndex)

    IF @TempIndex=0

        SET @Result = SUBSTRING(@Expression,0,@Temp)

    ELSE IF @TempIndex<@Temp

        SET @Result = SUBSTRING(@Expression,@TempIndex,@Temp-@TempIndex)

    ELSE

        SET @Result = SUBSTRING(@Expression,@TempIndex,LEN(@Expression)-@TempIndex+1)

    IF @Temp < @TempIndex

        SET @TempIndex = -1

    ELSE

        SET @TempIndex = @Temp+1

    IF @Idx=@Index

        SET @TempIndex = -1

    ELSE

    BEGIN

        SET @Idx = @Idx+1

        SET @Result = ''

    END        

END

    RETURN @Result

END

 

你可能感兴趣的:(String)