指引网

当前位置: 主页 > 数据库 > SQLServer >

自定义SQL中的SplitString函数

来源:网络 作者:佚名 点击: 时间:2018-03-14 17:54
[摘要] 自定义SQL中的SplitString函数SQL Server中貌似没有Split函数,不能实现将某个字符串按照某个特定的字符分隔,在这里,提供一个自定义SQL函数,实现Split功能,当然,返回数组是不可能滴,你懂的

自定义SQL中的SplitString函数   SQL Server中貌似没有Split函数,不能实现将某个字符串按照某个特定的字符分隔,在这里,提供一个自定义SQL函数,实现Split功能,当然,返回数组是不可能滴,你懂的...   www.2cto.com   /****************************************************************************** **  功能:将指定的字符串按照指定的分隔符分割,返回指定索引的子字符串 **  作者:Danny,Li (xing.dong.li@163.com) ******************************************************************************* **  返回值列表 **************************** **  返回值        涵义 **  -------        ------------------------------------------------------ **  @Result        指定索引的子字符串(索引从0开始) ** *******************************************************************************/ CREATE FUNCTION dbo.fun_SplitString (     @Expression VARCHAR(8000),    -- 欲处理的字符串     @SplitChar CHAR(1),            -- 分隔符     @Index INT                    -- 取值索引 ) Returns varchar(255) AS  www.2cto.com   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  www.2cto.com       BEGIN         SET @Idx = @Idx+1         SET @Result = ''     END         END     RETURN @Result END
------分隔线----------------------------