rq         js
2010-08-20 333333333333333333333333330000000000111111111请问有没有可以统计出JS里有多少个3,多少个0,多少个1。0是从第几位开始的。1又是从第几位开始的。谢谢

解决方案 »

  1.   


    declare @s varchar(200)
    set @s = '333333333333333333333333330000000000111111111'
    select  len(@s)-len(replace(@s,'3','')) as '3的个数',len(@s)-len(replace(@s,'0','')) as '0的个数',len(@s)-len(replace(@s,'1','')) as '1的个数',charindex('0',@s,1) as '0开始的位置',charindex('1',@s,1) as '1开始的位置'自己换成表中的字段就行了。
      

  2.   


    select  len(js)-len(replace(js,'3','')) as '3的个数',len(js)-len(replace(js,'0','')) as '0的个数',len(js)-len(replace(js,'1','')) as '1的个数',charindex('0',js,1) as '0开始的位置',charindex('1',js,1) as '1开始的位置' from tb 
      

  3.   

    3,0,1 都是连续的吗?declare @t table(rq datetime,js varchar(100))
    insert into @t select '2010-8-20','3333333333333330000000000111111111'select convert(char(10),rq,120) as rq,
    len_3 =len(js)-len(replace(js,'3','')),
    len_0 =len(js)-len(replace(js,'0','')),
    begin_0 = charindex('0',js),
    len_1=len(js)-len(replace(js,'1','')),
    begin_1= charindex('1',js)
    from @t
      

  4.   


    select rq,
           len(left(js,charindex('0',js)-1)) as [3的个数],
           len(replace(replace(js,'3',''),'1','')) as [0的个数],
           charindex('0',js) as [0的开始位置],
           len(replace(replace(js,'3',''),'0','')) as [1的个数],
           charindex('1',js) as [1的开始位置]
    from tb
      

  5.   

    上面的应该那个位置不会对。replace都搞光字符了。。能正确的找出字符所出现的位置呢。。借用上楼的兄弟代码一用
    select rq,
           charindex('0',js) as [0的开始位置],
    charindex('1',js) as [1的开始位置],
           len(left(js,charindex('0',js)-1)) as [3的个数],
           len(replace(replace(js,'3',''),'1','')) as [0的个数],
           len(replace(replace(js,'3',''),'0','')) as [1的个数]
           
    from tb