SQL Server中貌似没有Split函数,不能实现将某个字符串按照某个特定的字符分隔,在这里,提供一个自定义SQL函数,实现Split功能,当然,返回数组是不可能滴,你懂的...
/****************************************************************************** ** 功能:将指定的字符串按照指定的分隔符分割,返回指定索引的子字符串 ** 作者:Danny,Li (xing.dong.li@163.com) ** 日期: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