唐山市丰润医药药材第二批发部—张庆芝我想截取‘-’前面的字符转 后面的不要 要怎么写啊
谢谢各位啦

解决方案 »

  1.   

    select left(col,charindex('-',col)-1) from tb
      

  2.   

    select substring(col,1,charindex('-',col)-1)  --要确保前面不会再有 - 号 ,如果前面还有,那就另想他法
      

  3.   


    print substring('唐山市丰润医药药材第二批发部—张庆芝',0,CharIndex('—','唐山市丰润医药药材第二批发部—张庆芝'))
      

  4.   

    SELECT left('唐山市丰润医药药材第二批发部—张庆芝',charindex('—','唐山市丰润医药药材第二批发部—张庆芝',0)-1)
      

  5.   

    declare @s varchar(100)
    set @s='唐山市丰润医药药材第二批发部-张庆芝'
    select left(@s,charindex('-',@s)-1)/**----------------------------------------------------------------------------------------------------
    唐山市丰润医药药材第二批发部(1 行受影响)
    **/
      

  6.   

     substring(col,1,charindex('-',col)-1)
      

  7.   

    select parsename(replace('唐山市丰润医药药材第二批发部—张庆芝','—','.'),2)
      

  8.   


    select substring('唐山市丰润医药药材第二批发部-张庆芝',0,charindex('-','唐山市丰润医药药材第二批发部-张庆芝'))
      

  9.   

    parsename这个函数的特性,希望楼主了解一下,很方便的
      

  10.   


    select substring('唐山市丰润医药药材第二批发部-张庆芝',0,charindex('-','唐山市丰润医药药材第二批发部-张庆芝'))
      

  11.   

    declare @str varchar(1000)
    set @str='aaa-a'
    select 
    case when charindex('-',@str)>0 then  left(@str,charindex('-',@str)-1)
    else @str end
      

  12.   


    select case when charindex('-',col)>0 then  left(col,charindex('-',col)-1)
    else col end as compfrom tb