declare @str varchar(20)
set @str='aaakkkllgjr'select [a的次数]=len(@str)-len(replace(@str,'a','')),
[k的次数]=len(@str)-len(replace(@str,'k','')),
[l的次数]=len(@str)-len(replace(@str,'l','')),
[r的次数]=len(@str)-len(replace(@str,'r',''))--结果
/*
a的次数 k的次数 l的次数 r的次数
----------- ----------- ----------- -----------
3.00 3.00 2.00 1.00(所影响的行数为 1 行)
*/
set @str='aaakkkllgjr'select [a的次数]=len(@str)-len(replace(@str,'a','')),
[k的次数]=len(@str)-len(replace(@str,'k','')),
[l的次数]=len(@str)-len(replace(@str,'l','')),
[r的次数]=len(@str)-len(replace(@str,'r',''))--结果
/*
a的次数 k的次数 l的次数 r的次数
----------- ----------- ----------- -----------
3.00 3.00 2.00 1.00(所影响的行数为 1 行)
*/
能够解决在IE浏览器中打印各种复杂的中国式报表及票据。详见: http://218.30.103.110:8080/eprint/index.htm
方成eform自定义表单平台,纯BS结构.100%开放源码.可以在 http://218.30.103.110:8080/eform/index.html 在线试用.
(@str varchar(20))
as
declare @Achar varchar(2)
declare @Sql nvarchar(2000)
while len(rtrim(ltrim(@str)))>0
begin
Set @Achar =left(@str,1 )
Set @Sql='select '
Set @Sql=@Sql+ @Achar+'的次数='+ convert (varchar(10),len(@str)-len(replace(@str,'''+@Achar +''','')))+','
Set @str=ltrim(rtrim(replace(@str,'''+@Achar +''','')))
end
Set @Sql=left(@Sql,len(@Sql)-1)
Exec Sp_ExecuteSql @Sql
没有测试过,因为家里没有sql
create procedure SumTimes
(@str varchar(20))
as
declare @Achar varchar(2)
declare @Sql nvarchar(2000)
Set @Sql='select '
while len(rtrim(ltrim(@str)))>0
begin
Set @Achar =left(@str,1 )
Set @Sql=@Sql+ @Achar+'的次数= len('''+@str+''')-len(replace('''+@str+''','''+@Achar +''','''')),'
Set @str=ltrim(rtrim(replace(@str,@Achar ,'')))
end
Set @Sql=left(@Sql,len(@Sql)-1)
Exec Sp_ExecuteSql @SqlGO
returns @r table (CharValue nvarchar(1),CharCount int)
as
begin
declare @i int,@c nvarchar(1)
select @i=1
while @i<=len(@in)
begin
select @c=substring(@in,@i,1),@i=@i+1
update @r set CharCount=CharCount+1 where CharValue =@c
if @@rowcount=0
insert into @r(CharValue ,CharCount ) values(@c,1)
end
return
end
goselect * from dbo.F_CountChar('dsdsfdfgrgfdgfdgd')