已知表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
訂單號 接單日期 客戶名稱 注意事項
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
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 行受影响)
你這種方法是可以查出來,但僅限於字段'注意事項'裡的內容只有一個英文字母,不知道你注意到沒有?
如果表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
品質等級B
品質等級B2
品質等級:A 要是没有:就还好处理些.
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
*/
,substring(substring(注意事項,patindex('%品質等級%',注意事項)
,len(注意事項)-patindex('%品質等級%',注意事項)+1)
,patindex('%[a-z]%',substring(注意事項,patindex('%品質等級%',注意事項)
,len(注意事項)-patindex('%品質等級%',注意事項)+1)),1) as 注意事項
from #T
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