自定义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