oracle通過substr和instr擷取指定字元
阿新 • • 發佈:2020-07-20
一:要擷取資料如下:
- JD-JD693-A-11OCT141105-D
- 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(擷取第二個,號後 到結尾 的資料) 案列:德銅 傷亡事故