oracle實現類似split效果

2021-06-20 07:36:15 字數 936 閱讀 2654

select * 

from (

select t.*,

regexp_substr(t.str, '[^,]+', 1, x.n) cc

from (

select 'a,b,c,d' str from dual

union all

select '11,223,44' from dual

) t,

(select rownum n from dual connect by rownum <= 5) x

order by 1

)where cc is not null

注:在上述sql中,rownum <= 後面的數字需要盡量取大點,要超過字串中最多的逗號數(如果最多的逗號個數為3,則需要rownum<=4),否則會少結果。

方法二

oracle實現split函式

oracle資料庫中某乙個字段可能存在以某些特殊符號隔開的字段,我們在查詢使用的時候往往需要將這些欄位spilt開 但是oracle沒有這個函式,網上搜尋了一下,找了乙個可以使用的函式 下面直接上指令碼 1.先建立乙個type create or replace type obj target as...

MySQL裡實現類似SPLIT的分割字串的函式

sql對字串的處理能力比較弱,比如我要迴圈遍歷象1,2,3,4,5這樣的字串,如果用陣列的話,遍歷很簡單,但是t sql不支援陣列,所以處理下來比較麻煩 下邊的函式,實現了象陣列一樣去處理字串。一,用臨時表作為陣列 複製 如下 create function f split c varchar 20...

MySQL裡實現類似SPLIT的分割字串的函式

一,用臨時表作為陣列 複製 如下 create function f split c varchar 2000 split varchar 2 returns t table col varchar 20 asbegin while charindex split,c 0 begin insert ...