FTTH-q12315我想取得'-'后的第一个字母加该字母以前的,也就是FTTH-q
gta-q15的话就是取得gta-q

解决方案 »

  1.   

    select left('FTTH-q12315',charindex('-','FTTH-q12315')+1)
      

  2.   


    select substring('gta-q15',0,Charindex('-','gta-q15')+2)
    ---结果
    gta-q
      

  3.   

    select LEFT('ffh-q12345',(charindex('-','ffh-q12315'))+1)
      

  4.   


    declare @s varchar(50)
    set @s = 'FTTH-q12315 '
    select substring(@s , 1 , charindex('-' ,@s)+1)
      

  5.   

    declare @s varchar(10)
    set @s='FTTH-q12315'
    select left(@s,charindex('-',@s)+1)
    /*----------
    FTTH-q(1 行受影响)*/
      

  6.   

    select left('FTTH-q12315',charindex('-','FTTH-q12315')+1)
    /*
    -----------
    FTTH-q(1 行受影响)*/
      

  7.   

    这个我有点疑惑运行结果没有问题
    sql里面这个索引应该从1开始吧
    Charindex('-','gta-q15')+2是6
    但是运行的结果却是正确的
    哪个老大给解释下啊
      

  8.   


    他的substring写的是从0开始的,而sql是从1开始的,所以是2
      

  9.   

    以下结果全都返回aselect substring('ab',-100,102)
    select substring('ab',-1,3)
    select substring('ab',0,2)
    select substring('ab',1,1)
      

  10.   

    left('FTTH-q12315',charindex('-','FTTH-q12315')+1)
      

  11.   

    这个不可以直接用substring()取,为什么还要用到两个函数?
      

  12.   

    select left('FTTH-q12315',charindex('-','FTTH-q12315')+1)
      

  13.   

    left('FTTH-q12315',charindex('-','FTTH-q12315')+1)
      

  14.   

    stuff('FTTH-q12315',charindex('-','FTTH-q12315')+1,len('FTTH-q12315'),'')
      

  15.   


    declare @test varchar(20)set @test='FTTH-q12315'
    set @test=Substring(@test,1,charindex('-',@test)+1)
    print @test
      

  16.   

    select left('FTTH-q12315',charindex('-','FTTH-q12315')+1)
    这样不是就行吗?我用的是这个,不知道你用不?