CHARINDEX ( expression1 , expression2 [ , start_location ] )

解决方案 »

  1.   

    --楼上,mssql可以支持正则表达式吗?
    declare @str varchar(100)
    set @str='1,22 ,33'
    select 逗号数=len(@str)-len(replace(@str, ',',''))
      

  2.   

    查找有多少个字符在字串里面, declare @str as varchar(10)
     set @str =  '1,2,3'
    select len(@str) - len(replace(@str,',',''))/len(',')
    /*
                
    ----------- 
    2(1 row(s) affected)
    */ 如果是查询'aa',
     declare @str as varchar(100)
     set @str =  '1,2,aa,8899aa3a,aa'
    select (len(@str) - len(replace(@str,'aa','')))/len('aa')
    /*
                
    ----------- 
    3(1 row(s) affected)
    */
    加上/len('string')会更好一点,因为可能查找长度不为1的字串