Oracle SQL 

instr語法說明:http://tomkuo139.blogspot.tw/2009/01/plsql-substring-string.html
 
 
instr抓取某個字串的位置,回傳該欄位起始的位置數,
搭配substr可以將對應區間的文字抓出來,
某些欄位透過【BLOB】型態將HTML或XML進行儲存,可以透過這邊抓出某個HTML ID後面的字串。

 
to_char(substr(BLOB的欄位, instr(BLOB的欄位,'要尋找的字串起始點'), instr(BLOB的欄位,'要尋找的字串終點') - instr(BLOB的欄位,'要尋找的字串起始點')))) 擷取的文字

 



select concat(substr('ABC_01',0,instr('ABC_01','_')-1),'%')  from Table
where TYPE like concat(substr('ABC_01',0,instr('ABC_01','_')-1),'%')

> ABC%

用途:搜尋字串於某個字元前的文字,然後透過Like查詢自首為該文字的所有資料

輸入:ABC_01

輸出:搜尋開頭為ABC的所有資料(搭配Like使用)

 

---------------------------------------

 

傳入的資料格式:
  XXX_事業群_廠區地點_部門名稱
   
語法說明:
  INSTR(字串,比對的關鍵字,開始搜尋的起始位置,第幾個關鍵字)

範例語法:
  ,SUBSTR(傳入資料,INSTR(傳入資料,'_',1,1)+1,INSTR(傳入資料,'_',1,2)-INSTR(傳入資料,'_',1,1)-1) A01
  ,SUBSTR(傳入資料,INSTR(傳入資料,'_',1,2)+1,INSTR(傳入資料,'_',1,3)-INSTR(傳入資料,'_',1,2)-1) A02
  ,SUBSTR(傳入資料,INSTR(傳入資料,'_',1,3)+1,30) A03

傳出:
  A01:事業群
  A02:廠區地點
  A03:部門名稱

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Nathan 的頭像
    Nathan

    Nathan;

    Nathan 發表在 痞客邦 留言(0) 人氣()