Oracle中SubStr和Instr的用法

1、Instr的用法

  • 用處:instr函數爲字符查找函數,其功能是查找一個字符串在另一個字符串中首次出現的位置。instr函數在Oracle/PLSQL中是返回要截取的字符串在源字符串中的位置。

  • 語法
    instr( string1, string2, start_position,nth_appearance )
    參數
    ● string1:源字符串,要在此字符串中查找。
    ●string2:要在string1中查找的字符串 。
    ●start_position:代表string1 的哪個位置開始查找。此參數可選,如果省略默認爲1. 字符串索引從1開始。如果此參數爲正,從左到右開始檢索,如果此參數爲負,從右到左檢索,返回要查找的字符串在源字符串中的開始索引。
    ●nth_appearance:代表要查找第幾次出現的string2. 此參數可選,如果省略,默認爲 1.如果爲負數系統會報錯。 [2]
    注意
    位置索引號從1開始。
      如果String2在String1中沒有找到,instr函數返回0。
     示例:
      SELECT instr(‘syranmo’,‘s’) FROM dual; – 返回 1
      SELECT instr(‘syranmo’,‘ra’) FROM dual; – 返回 3
      SELECT instr(‘syran mo’,‘at’,1,2) FROM dual; – 返回 0

2、SubStr的用法

  • 用處:substr函數在oracle中使用表示被截取的字符串或字符串表達式。和instr()函數不同,instr()函數是要截取的字符串在源字符串中的“位置”,substr()函數是截取字符串的“內容”。

  • substr(string,start,length)
    參數 必須 參數說明
    string 必須 指定的要截取的字符串
    start 必須
    規定在字符串的何處開始:
    正數 - 在字符串的指定位置開始
    負數 - 在從字符串結尾的指定位置開始
    0 - 在字符串中的第一個字符處開始
    length 可選 指定要截取的字符串長度,缺省時返回字符表達式的值結束前的全部字符

  • 例如:
    select substr(‘abcdefg’,3,4) from dual;結果是cdef
    select substr(‘abcdefg’,-3,4) from dual;結果efg
    select substr(‘abcde’,2),substr(‘abcde’,-2),substr(‘abcde’,2,3),substr(‘abcdewww’,-7,3) from dual;
    結果是bcde、de、bcd、bcd

3、案例:

  • “(N20.101)輸尿管結石” 將這個字符串的編碼和文字分開輸出。
select substr('(N20.100)輸尿管結石',
              2,
              instr('(N20.100)輸尿管結石', ')', 1, 1) - 2)
  from dual;
  
select substr('(N20.100)輸尿管結石',
              instr('(N20.100)輸尿管結石', ')', 1, 1) + 1)
  from dual;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章