今天進行字符串根據字符拆分的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
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!