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:部門名稱