不使用parsename函数来拆分字符串 ALTERfunction dbo.UDF_SplitSubString ( @Expressionvarchar(8000) ,@Delimitervarchar(100) ,@ int ) returnsvarchar(8000) as begin --declare @Expression varchar(8000) --set @Expression = 'abc@@pppp@aa' --declare @Delimiter varchar(100) --set @Delimiter = '@@@' --declare @ int --set @ = 3 declare@pint set@p=CharIndex(@Delimiter,@Expression) if@p>0 begin set@p=@p+len(@Delimiter) -1 end declare@iint set@i=1 while@i< @ begin set@i=@i+1 set@Expression=substring (@Expression, @p+1,len(@Expression) -@p ) set@p=CharIndex(@Delimiter,@Expression) if@p>0 begin set@p=@p+len(@Delimiter) -1 end else begin break end end
declare@svarchar(1000) if@p=0and@i= @ begin set@s=@Expression end elseif@i= @ begin set@s=substring(@Expression, 1,@p-len(@Delimiter)) end return@s end