oracle欄位根據字串拆分,用subStr()和inStr()進行拆分
今天進行字串根據字元拆分的sql的編寫,剛開始是按照split的方式進行處理的,Oracle是沒有現成的split函式的,需要在網上找。網上大多是處理之後會變成collection的,結果是不好處理的,比如拆分之後,要把拆分出來的前半部分和後半部分做成兩列,第一列可以根據rownum=1進行處理,第二列開始就不行了。
所以考慮用subStr()和inStr()進行拆分,先用inStr()查出符號的位置,再通過subStr()進行擷取,如下:
select substr('前/後',0,instr('前/後','/',1,1)-1) first ,substr('前/後',instr('前/後','/',1,1)+1,length('前/後')) last from dual
執行結果:
=================================================================
INSTR(源字串, 要查詢的字串, 從第幾個字元開始找, 要找到第幾個匹配的序號)
INSTR(C1,C2,I,J)
在一個字串中搜索指定的字元,返回發現指定的字元的位置;
C1 被搜尋的字串
C2 希望搜尋的字串
I 搜尋的開始位置,預設為1
J 出現的位置,預設為1
===================================================================
substr函式的用法:
取得字串中指定起始位置和長度的字串 substr( string, start_position, [ length ] )
---------------------
作者:J夢幻
來源:CSDN
原文:https://blog.csdn.net/panlanghao/article/details/74991982
版權宣告:本文為博主原創文章,轉載請附上博文連結!