已知表t:
 訂單號   接單日期   客戶名稱     注意事項
 ABC00001  2008/6/18   T214        品質等級B,特急單
 ABC00002  2008/6/17   S369        緊急訂單, 請確認最好交期!品質等級B2  
 ABC00003  2008/6/15   R025        外發訂單,品質等級:A
 ABC00004  2008/6/18   J568        請注意字印的處理  
 
我想得到的結果如下:
 訂單號   接單日期   客戶名稱     注意事項
 ABC00001  2008/6/18   T214        B
 ABC00002  2008/6/17   S369        B
 ABC00003  2008/6/15   R025        A
 ABC00004  2008/6/18   J568        

解决方案 »

  1.   

    create table #(id int identity,name varchar(40))
    insert into # select '品質等級B,特急單' 
    insert into # select '緊急訂單, 請確認最好交期!品質等級B2'  
    insert into # select '外發訂單,品質等級:A' 
    insert into # select '請注意字印的處理' 
     
    update # set name=substring(name,patindex('%[a-z]%',name),patindex('%[^a-z]%',name))select * from #id          name
    ----------- ----------------------------------------
    1           B
    2           B
    3           A
    4           (4 行受影响)
      

  2.   

    ojuju10:
            你這種方法是可以查出來,但僅限於字段'注意事項'裡的內容只有一個英文字母,不知道你注意到沒有?
      如果表t中的字段'注意事項'是如下得內容呢? 訂單號      接單日期    客戶名稱       注意事項 
    ABC00001  2008/6/18  T214        ACDDFSD,品質等級B,特急單 
    ABC00002  2008/6/17  S369        緊急訂單, 請確認最好交期CCCCC!品質等級B2  
    ABC00003  2008/6/15  R025        外發訂單aaasaa,品質等級:A 
    ABC00004  2008/6/18  J568        請注意字印的kkkk處理  我想得到的結果仍然如下: 
    訂單號      接單日期      客戶名稱    注意事項 
    ABC00001  2008/6/18  T214        B 
    ABC00002  2008/6/17  S369        B 
    ABC00003  2008/6/15  R025        A 
    ABC00004  2008/6/18  J568    
      

  3.   

    注意事项里至少也要有点规律啊.
    品質等級B
    品質等級B2
    品質等級:A 要是没有:就还好处理些.
      

  4.   


    if object_id('tempdb.dbo.#T') is not null 
    drop table #Tcreate table #T(訂單號 varchar(20),接單日期 datetime,客戶名稱 varchar(10),注意事項 varchar(50))insert into #T
    select 'ABC00001','2008/6/18','T214','品質等級B,特急單' union all
    select 'ABC00002','2008/6/17 ','S369','緊急訂單, 請確認最好交期!品質等級B2 ' union all
    select 'ABC00003','2008/6/15','R025','外發訂單,品質等級:A ' union all
    select 'ABC00004','2008/6/18','J568','請注意字印的處理'select 訂單號,接單日期,客戶名稱,substring(substring(注意事項,patindex('%品質等級%[a-z]%',注意事項),len(注意事項)-patindex('品質等級[a-z]%',注意事項))
    ,patindex('%[a-z]%',substring(注意事項,patindex('%品質等級%[a-z]%',注意事項),len(注意事項)-patindex('品質等級[a-z]%',注意事項))),1) as 注意事項
    from #Tdrop table #T
    /*
    訂單號 接單日期      客戶名稱注意事項
    ABC00001 2008-06-18 00:00:00.000 T214 B
    ABC00002 2008-06-17 00:00:00.000 S369 B
    ABC00003 2008-06-15 00:00:00.000 R025 A
    ABC00004 2008-06-18 00:00:00.000 J568

    */
      

  5.   

    上贴有误:select 訂單號,接單日期,客戶名稱,注意事項
    ,substring(substring(注意事項,patindex('%品質等級%',注意事項)
    ,len(注意事項)-patindex('%品質等級%',注意事項)+1)
    ,patindex('%[a-z]%',substring(注意事項,patindex('%品質等級%',注意事項)
    ,len(注意事項)-patindex('%品質等級%',注意事項)+1)),1) as 注意事項
    from #T
      

  6.   

    if object_id('tempdb.dbo.#T') is not null 
    drop table #Tcreate table #T(訂單號 varchar(20),接單日期 datetime,客戶名稱 varchar(10),注意事項 varchar(50))insert into #T
    select 'ABC00001','2008/6/18','T214','品質等級B,特急單' union all
    select 'ABC00002','2008/6/17 ','S369','緊急訂單, 請確認最好交期!品質等級B2 ' union all
    select 'ABC00003','2008/6/15','R025','外發訂單,品質等級:A ' union all
    select 'ABC00004','2008/6/18','J568','請注意字印的處理'select 訂單號,接單日期,客戶名稱,
       substring(substring(注意事項,charindex('品質等級',注意事項),
                       len(注意事項)-charindex('品質等級',注意事項)+1)
          ,patindex('%[a-z]%',substring(注意事項,charindex('品質等級',注意事項),
                       len(注意事項)-charindex('品質等級',注意事項)+1)),1) as 注意事項
    from #Tdrop table #T