得出位置 declare @s nvarchar(100) set @s='AAOAABCAADABOOAAEDCOOOOO' select len(@s)-patindex('%[^O]%',reverse(@s))+2
declare @s nvarchar(100) set @s='AAOAABCAADABOOAAEDCOOOOOAA'--结尾不为0 select len(stuff(stuff(reverse(@s),1,charindex('O',reverse(@s))-1,''),1, patindex('%[^O]%',stuff(reverse(@s),1,charindex('O',reverse(@s))-1,'')),''))+2
偷个机,既然是说连续那么则至少2个declare @s varchar(50) set @s='AAOAABCAADABOOAAEDCOOOOOAA' select charindex('OO',@s)
declare @s varchar(50) set @s='AAOAABCAADABOOAAEDCOOOOOAA' select charindex('OO',@s)
declare @s varchar(50) set @s='AAOAABCAADABOOAAEDCOOOOOAA' select len(@s)-charindex('OO',reverse(@s))-patindex('%[^O]%', reverse(left(@s,len(@s)-charindex('OO',reverse(@s)))))+2
declare @a varchar(100),@i int,@str varchar(800) select @a='AAOAABCAADABOOAAEDCOOOOO' set @i=0 set @str='' while @i<(select len(@a)) begin set @i=@i+1 select @str=right(@a,@i) if left(@str,1)<>'o' break end select 最后一个o的位置=len(@a)-len(@str)+1
declare @s nvarchar(100)
set @s='AAOAABCAADABOOAAEDCOOOOO'
select len(@s)-patindex('%[^O]%',reverse(@s))+2
set @s='AAOAABCAADABOOAAEDCOOOOOAA'--结尾不为0
select len(stuff(stuff(reverse(@s),1,charindex('O',reverse(@s))-1,''),1,
patindex('%[^O]%',stuff(reverse(@s),1,charindex('O',reverse(@s))-1,'')),''))+2
set @s='AAOAABCAADABOOAAEDCOOOOOAA'
select charindex('OO',@s)
set @s='AAOAABCAADABOOAAEDCOOOOOAA'
select charindex('OO',@s)
declare @s varchar(50)
set @s='AAOAABCAADABOOAAEDCOOOOOAA'
select len(@s)-charindex('OO',reverse(@s))-patindex('%[^O]%', reverse(left(@s,len(@s)-charindex('OO',reverse(@s)))))+2
select @a='AAOAABCAADABOOAAEDCOOOOO'
set @i=0
set @str=''
while @i<(select len(@a))
begin
set @i=@i+1
select @str=right(@a,@i)
if left(@str,1)<>'o'
break
end
select 最后一个o的位置=len(@a)-len(@str)+1