DECLARE @Tables VARCHAR(600
set @tables=' CQT_TestData.dbo.t_CQTGSM_DedicatedMeas'问题一:
   怎么 获取 '_' 出现第二次的位置
问题二:
   最后 我想 通过 截的 字符串 'DedicatedMeas'
  由于字符串 是可变的 ,所以这里不能用 特定的 起始结束位置。

解决方案 »

  1.   

    select reverse(right(reverse(' CQT_TestData.dbo.t_CQTGSM_DedicatedMeas'),charindex('_',' CQT_TestData.dbo.t_CQTGSM_DedicatedMeas')-1))
      

  2.   

    DECLARE @Tables VARCHAR(600)
    set @tables=' CQT_TestData.dbo.t_CQTGSM_DedicatedMeas'select charindex('_', @tables, charindex('_',@tables)+1) -- 20select reverse(left(reverse(@tables), charindex('_',reverse(@tables))-1)) -- DedicatedMeas
      

  3.   

    DECLARE @Tables VARCHAR(600)
    select @Tables='CQT_Tea.t_CQT_edMeas'select  CHARINDEX('_',@Tables,0)+CHARINDEX('_',STUFF(@Tables,1,CHARINDEX('_',@Tables,0),''),1)DECLARE @Tables VARCHAR(600)
    select @Tables='CQ_T_CQT_edMeas'select  CHARINDEX('_',@Tables,0)+CHARINDEX('_',STUFF(@Tables,1,CHARINDEX('_',@Tables,0),''),1)
      

  4.   

    DECLARE @tables VARCHAR(600)
    set @tables=' CQT_TestData.dbo.t_CQTGSM_DedicatedMeas'
    select reverse(left(reverse(@tables),charindex('_',reverse(@tables))-1))DedicatedMeas
      

  5.   

    DECLARE @Tables VARCHAR(600)
    set @tables=' CQT_TestData.dbo.t_CQTGSM_DedicatedMeas'select charindex('_',@tables,charindex('_',@tables,1)+1)
    select right(@tables,charindex('_',reverse(@tables),1)-1)
      

  6.   

    --问题一:
    DECLARE @Tables VARCHAR(600)
    set @tables='CQT_TestData.dbo.t_CQTGSM_DedicatedMeas'
    Select CharIndex('_',Substring(@tables,CharIndex('_',@tables)+1,100))
    Select Substring(@tables,CharIndex('_',@tables)+1,100) --问题二:
    DECLARE @Tables VARCHAR(600)
    set @tables='CQT_TestData.dbo.t_CQTGSM_DedicatedMeas'
    Select   @tables=Substring((Substring(@tables,CharIndex('_',@tables)+2,100)),
    CharIndex('_',Substring(@tables,CharIndex('_',@tables)+1,100)),100) 
    Select Substring(@tables,CharIndex('_',@tables)+1,100)
      

  7.   


    DECLARE @tables VARCHAR(600)
    set @tables='CQT_TestData.dbo.t_CQTGSM_DedicatedMeas'
    select CharIndex('_',@tables)+CharIndex('_',substring(@tables,CharIndex('_',@tables)+1,len(@tables)))
    需要加上被截掉的字符串的字符个数。