oracle截取某個特定字符或者某一段字符之后或者之前的數據(instr函數詳解)


從開始截取到某一個字符之前

select substr('12345678.SZ',1,instr('12345678.SZ','.',1)-1) from dual

從某個字符截取到最后

select substr('12345678.SZ',instr('12345678.SZ','.',1)+1) from dual

說明:

如果要截取的值不包含字符串本身,則將長度減1或者加1即可。如果對substr函數不清楚可以查看oracle中截取后幾位用法及詳解

instr函數詳細說明:

用法:

第一種:Instr(name,name2)

第二種:instr(name,name2,index,number)

Name 是字段名稱  name2  是要截取的關鍵字或者字符串,默認從字段的第一位開始查找,遇到第一個字符串,返回該字符串的位置(也就是索引),如果截取的字符串有包含多個字符,則返回第一個字符的位置。

1

select instr('helloword','l') from dual   ==>3

select instr('helloword','lo') from dual  ==>4

像例1這種情況就是默認從第一個字符開始,查找字符串遇到第一個返回改字符串的位置

2

select instr('helloword','l',1,2) from dual  ==>4

select instr('hellowordow','ow',1,2) from dual  ==>10

select instr('hellowordowhelloword','ow',11,1) from dual  ==>16

像例2這種情況就是就是從第三個參數獲取到從第幾位開始查詢,從第四個參數獲取到第幾次出現的值,將對應值的位置返回。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM