34,838
社区成员




select len('a#b#c-d#ggsdfsdfasdf')- charindex('#',reverse('a#b#c-d#ggsdfsdfasdf'))+1
/****函数说明:查询字符在字符串中第几次出现的位置 *******/
create Function StrSite(@Str varchar(2000) ,@Word varchar(20) ,@TimesNo int)
returns int
as
begin
declare @i int,@Times int
declare @WordLen int
set @Times=0
set @i=1
set @Wordlen=len(@Word)
while (@i< Len(@Str)+1 )
begin
if substring(@Str,@i,@Wordlen)=@word
set @times=@times+1
--print '第'+cast(@i as varchar(20)) +'是 : ' +cast(@Times as varchar(20))
if @times=@TimesNo
break
set @i=@i+1
end
return (@i)
end
go
declare @ErrorMesage varchar(70)
set @ErrorMesage = 'a#b#c-d#'
select dbo.StrSite(@ErrorMesage,'#',3)
/*
---
8
*/
drop function dbo.StrSite
declare @ErrorMesage varchar(70)
set @ErrorMesage = 'a#b#c-d#'
select charindex('#',@errormesage,charindex('#',@errormesage,charindex('#',@errormesage)+1)+1)
declare @ErrorMesage varchar(70)
set @ErrorMesage = 'a#b#c-d#'
select len(@ErrorMesage)-charindex('#',reverse(@ErrorMesage))+1
/*
---
8
*/
select charindex('#',reverse('a#b#c-d#'))
select len(@s)-right(@s,charindex('#',@s))+1