declare @StrAll varchar(8000), @StrFind varchar(8000), @I int
set @StrAll = replicate('A', 10) + replicate('B', 11) + replicate('C', 12) + replicate('D', 13)
set @StrFind = 'C'
set @I = 0
while charindex(@StrFind, @StrAll) <> 0
begin
set @StrAll = right(@StrAll, len(@StrAll) - charindex(@StrFind, @StrAll))
set @I = @I + 1
end
print @I
set @StrAll = replicate('A', 10) + replicate('B', 11) + replicate('C', 12) + replicate('D', 13)
set @StrFind = 'C'
set @I = 0
while charindex(@StrFind, @StrAll) <> 0
begin
set @StrAll = right(@StrAll, len(@StrAll) - charindex(@StrFind, @StrAll))
set @I = @I + 1
end
print @I
--设要检查的表为T,字段为s,为简化问题,设表中记录只有一行:declare @s varchar(10)
declare @i int
declare @n int
declare @t table ( s char, n int)
set @s='abc' --要检查字段的字串,这里赋值仅为说明问题。
set @i=1
while @i<=len(@s)
begin
select top 1 @n=len(s)-len(replace(s,substring(@s,@i,1),'')) from T
insert @t select substring(@s,i,1),@n
set @i=@i+1
end
select * from @t
Declare @Test varchar(3000)
Select @Test = 'fdsf[upload=1]fdsfds[/upload]fdsffdsf[upload=2]fdsfds[/upload]fdsf'+
'fdsf[upload=3]fdsfds[/upload]fdsffdsf[upload=4]fdsfds[/upload]fdsf'+
'fdsf[upload=5]fdsfds[/upload]fdsffdsf[upload=6]fdsfds[/upload]fdsf'
Select @i =0,@j=0
while(@i < Len(@Test))
Begin
if Charindex('[upload',@Test,@i) > 0 and Charindex('[/upload]',@Test,@i) > 0
and Charindex('[upload',@Test,@i) < Charindex('[/upload]',@Test,@i)
Select @j = @j +1,@i = Charindex('[/upload]',@Test,@i)+1
Else
Select @i = Len(@Test)
End
select @j