--查询出 @SQL 中 有多少 个 ';' 有没有现成的函数
  DECLARE @SQL VARCHAR(max)
  SET @SQL='RxAGC(dBm);TxAGC(dBm);TxGainAdj(dB)'
  --最后计算出 一共有2个 ';'

解决方案 »

  1.   

      DECLARE @SQL VARCHAR(max)
      SET @SQL='RxAGC(dBm);TxAGC(dBm);TxGainAdj(dB)' select len(@SQL) - len(replace(@SQL,';','')) -- 2
      

  2.   


    DECLARE @s VARCHAR(200)
    SET @s = '1;2;3;4'
    SELECT LEN(@s)-LEN(REPLACE(@s,';',''))
    结果3
      

  3.   


      select   (len(@SQL)-len(replace(@SQL, ';', '')))/len( ';') 
      

  4.   

    现成的似乎没有 1楼的方面蛮巧妙的 呵呵加个参数
      DECLARE @SQL VARCHAR(max)
      SET @SQL='RxAGC(dBm);TxAGC(dBm);TxGainAdj(dB)'
      set @sstr=';'
        select (len(@SQL) - len(replace(@SQL,';','')))/len(@str) -- 2
      

  5.   

    len方法其实不正道,参见下面:DECLARE @SQL VARCHAR(max)
    SET @SQL='RxAGC(dBm);TxAGC(dBm);TxGainAdj(dB)  ;' --> 怕这种情况select len(@SQL) - len(replace(@SQL,';','')) -- 5 errorselect datalength(@SQL) - datalength(replace(@SQL,';','')) -- 3 ok
      

  6.   


    select len(@SQL) - len(replace(@SQL,';',''))    的长度 仍然是 3
      

  7.   


    对就行了,我现在2008版,我记得2005/2000中len()都是忽略尾随空格的,可能记错了。