select aaa from tb where charindex('[(]' , aaa)
union all
select substring(aaa , charindex('[(]' , aaa) + 1 , charindex('[)]' , aaa) - charindex('[(]' , aaa) - 1) as aaa from tb

解决方案 »

  1.   

    select case 
           when charindex('[(]',aaa)<=0 then aaa 
           else substring(aaa,charindex('[(]',aaa)+1,charindex('[)]',aaa)-charindex('[(]',aaa)-1) 
           end  as [aaa]
    from T
      

  2.   

    确实不对.不好意思.
    select aaa from tb where charindex('[(]' , aaa) <= 0
    union all
    select substring(aaa , charindex('[(]' , aaa) + 1 , charindex('[)]' , aaa) - charindex('[(]' , aaa) - 1) as aaa from tb
      

  3.   

    还是不对,向 substring 函数传递了无效的 length 参数。
      

  4.   

    playwarcraft写的查询出来的结果是整个字段都写出来了,有括号的那些没有只显示括号里的内容
      

  5.   

    --受烏龜的影響,將[]拿掉應該ok :(select case 
           when charindex('(',aaa)<=0 then aaa 
           else substring(aaa,charindex('(',aaa)+1,charindex(')',aaa)-charindex('(',aaa)-1) 
           end  as [aaa]
    from T
      

  6.   

    create table t(aaa varchar(10))
    insert into t
    select 'av(cs)e'
    union  all
    select 'fgd'
    select case 
           when charindex('(',aaa)<=0 then aaa 
           else substring(aaa,charindex('(',aaa)+1,charindex(')',aaa)-charindex('(',aaa)-1) 
           end  as [aaa]
    from T/*
    aaa        
    ---------- 
    cs
    fgd
    */drop table t