---MsSQL自创函数--取@Sstr串中的以@Ssep分隔的第@Pos个字符
Create Function dbo.GetStrByPos(@Sstr varchar(500),@Ssep varchar(20),@Pos int)
Returns varchar(500)
with ENCRYPTION
As
begin
Declare @Tmpstr varchar(500),@TmpPosstr varchar(500),@iIndex int,@Cnt int
set @Tmpstr=@Sstr
set @Cnt=0 --开始计数器为0连续找@Pos-1次
while (@Cnt<@Pos-1)
begin
select @iIndex=CharIndex(@Ssep, @Tmpstr)
set @Tmpstr=right(@Tmpstr,len(@Tmpstr)-@iIndex) --取剩下的串
set @Cnt=@Cnt+1
end
select @iIndex=CharIndex(@Ssep, @Tmpstr)
if @iIndex=0
set @TmpPosstr=@Tmpstr
else
set @TmpPosstr=left(@Tmpstr,@iIndex-1)
Return @TmpPosstr
end
Create Function dbo.GetStrByPos(@Sstr varchar(500),@Ssep varchar(20),@Pos int)
Returns varchar(500)
with ENCRYPTION
As
begin
Declare @Tmpstr varchar(500),@TmpPosstr varchar(500),@iIndex int,@Cnt int
set @Tmpstr=@Sstr
set @Cnt=0 --开始计数器为0连续找@Pos-1次
while (@Cnt<@Pos-1)
begin
select @iIndex=CharIndex(@Ssep, @Tmpstr)
set @Tmpstr=right(@Tmpstr,len(@Tmpstr)-@iIndex) --取剩下的串
set @Cnt=@Cnt+1
end
select @iIndex=CharIndex(@Ssep, @Tmpstr)
if @iIndex=0
set @TmpPosstr=@Tmpstr
else
set @TmpPosstr=left(@Tmpstr,@iIndex-1)
Return @TmpPosstr
end