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 ...