create function f_firstposition(@Str varchar(8000),@StrSep varchar(10),@AppPos int)
returns int
begin
declare @i int
declare @ii int
set @Str=rtrim(ltrim(@Str))
set @i=1
select @ii=charindex(@StrSep,@Str)
if @i=@AppPos
return @ii
else
while @AppPos>@i
begin
if charindex(@StrSep,right(@Str,len(@Str)-@ii))<>0
select @ii=charindex(@StrSep,right(@Str,len(@Str)-@ii))+@ii
else
set @ii=0
set @i=@i+1
end
return @ii
end
go
select dbo.f_firstposition('abc,def,ccc,ged',',',1)
go
返回:4
select dbo.f_firstposition('abc,def,ccc,ged',',',2)
go
返回:8
select dbo.f_firstposition('abc,def,ccc,ged',',',3)
go
返回:12
select dbo.f_firstposition('abc,def,ccc,ged',',',4)
go
返回:0
returns int
begin
declare @i int
declare @ii int
set @Str=rtrim(ltrim(@Str))
set @i=1
select @ii=charindex(@StrSep,@Str)
if @i=@AppPos
return @ii
else
while @AppPos>@i
begin
if charindex(@StrSep,right(@Str,len(@Str)-@ii))<>0
select @ii=charindex(@StrSep,right(@Str,len(@Str)-@ii))+@ii
else
set @ii=0
set @i=@i+1
end
return @ii
end
go
select dbo.f_firstposition('abc,def,ccc,ged',',',1)
go
返回:4
select dbo.f_firstposition('abc,def,ccc,ged',',',2)
go
返回:8
select dbo.f_firstposition('abc,def,ccc,ged',',',3)
go
返回:12
select dbo.f_firstposition('abc,def,ccc,ged',',',4)
go
返回:0
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22392018/viewspace-1203898/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22392018/viewspace-1203898/