如:‘ab-cd-ef-gh’现在要取到,第三个'-'后面的gh

解决方案 »

  1.   

    declare @s varchar(100);
    set @s = 'ab-cd-ef-gh';select substring(@s,len(@s)-charindex('-',reverse(@s))+2,8000)
      

  2.   

    Declare @Sql Varchar(100)
    Declare @II Int
    Select @Sql = 'ab-cd-ef-gh'
    Select @II = Len(@Sql)
    While @II > 0
     Begin
      If SubString(@Sql,@II,1) = '-'
        Begin
         Select Right(@Sql,Len(@Sql) - @II)
         Return
        End
      Else
        Select @II = @II - 1
     End
      

  3.   

    为什么一定要用reverse函数
      

  4.   

    [code=SQLdeclare @s varchar(100);
    set @s = 'ab-cd-ef-gh';select right(@s, charindex('-',reverse(@s))-1)][/code]
      

  5.   


    declare @s varchar(100);
    set @s = 'ab-cd-ef-gh';select right(@s, charindex('-',reverse(@s))-1)
      

  6.   

    declare @str char(20)
    set @str='ab-cd-ef-gh'select stuff(@str,1,len(@str)-charindex('-',reverse(rtrim(@str)))+1,'') as resultselect substring(@str,len(@str)-charindex('-',reverse(rtrim(@str)))+2,charindex('-',reverse(rtrim(@str)))-1) as resultselect reverse(left(reverse(@str),charindex('-',reverse(@str))-1)) as resultselect right(@str,charindex('-',reverse(@str))-1) as result/*
    result
    -------------
    gh
    */
      

  7.   

    从后面取第一个,然后用substring