1. 程式人生 > 實用技巧 >oracle通過substr和instr擷取指定字元

oracle通過substr和instr擷取指定字元

一:要擷取資料如下:

  1. JD-JD693-A-11OCT141105-D
  2. CA-CA1344-A-11OCT141250-D

二:查詢結果:

方式一:select substr(name,instr(name,'-',1)+1,instr(name,'-',instr(name,'-',1)+1)-instr(name,'-',1)-1) from test;

方式二: select substr(name,instr(name,'-',1,1)+1,instr(name,'-',1,2)-1-instr(name,'-',1,1)) from test;

結果如下:

三:接下擷取第二個"-" 到 第三個"-" 之間的字串的方法:

  select substr(name,instr(name,'-',2,2)+1,instr(name,'-',2,3)-1-instr(name,'-',2,2)) from test;

結果如下:

補充:

  select t.COL1,substr(t.COL1,0,instr(t.COL1,',','1','1')-1) fromAQ_MBGL t; (擷取第一個,號前 的資料)

   select t.COL1,substr(t.COL1,instr(t.COL1,',',2,2)+1,length(t.COL1)) from AQ_MBGL t(擷取第二個,號後 到結尾 的資料) 案列:德銅 傷亡事故