1. 程式人生 > >oracle sql 進行遍歷查詢

oracle sql 進行遍歷查詢

sql遍歷

SELECT *

FROM (WITH temptest AS (SELECT LEVEL lv FROM DUAL connect BY LEVEL <= 10)

select lv,

cnt,

gdm,

substr(vals,

instr(t.vals, ‘,‘, 1, ts.lv) + 1,

instr(t.vals, ‘,‘, 1, ts.lv + 1) -

(instr(t.vals, ‘,‘, 1, ts.lv) + 1)) AS name

from (SELECT g.gdm,

‘,‘ || g.gdgr || ‘,‘ as vals,

(LENGTH(‘,‘ || g.gdgr) - LENGTH(REPLACE(gdgr, ‘,‘))) as cnt

FROM MYTEST.GD g) t

join temptest ts on ts.lv <= t.cnt

where gdm = ‘騰訊‘

)

技術分享


原數據

技術分享

主要是為了將以逗號存的數據以行的形式展現出來

思路是先獲取到數據的長度,然後遍歷的時候判斷長度,並且,根據這個參數去截取到對應的值,不過效率的方面感覺不咋好

oracle sql 進行遍歷查詢