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 行)
*/

解决方案 »

  1.   

    http://blog.csdn.net/zjcxc/archive/2004/07/30/56677.aspx
      

  2.   

    eprint自定义打印是一个页面套打工具.它直接在IE浏览器中可视化的设计各种复杂的打印模版,
    能够解决在IE浏览器中打印各种复杂的中国式报表及票据。详见: http://218.30.103.110:8080/eprint/index.htm
    方成eform自定义表单平台,纯BS结构.100%开放源码.可以在 http://218.30.103.110:8080/eform/index.html 在线试用.
      

  3.   

    create procedure SumTimes
    (@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
      

  4.   

    经过测试后的答案:
    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
      

  5.   

    --无聊,我也来create function F_CountChar(@in nvarchar(4000))
    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')