Du kan bruge en korreleret hierarkisk forespørgsel:
SELECT t.id, r.COLUMN_VALUE, t.cntFROM table_name t CROSS JOIN TABLE( CAST( MULTISET( SELECT LEVEL FROM DUAL CONNECT BY LEVEL <=t.cnt ) AS SYS.ODCINUMBERLIST ) r; /kode>
eller en rekursiv underforespørgsel factoring-sætning:
MED row_generator ( id, lvl, cnt ) AS ( SELECT id, 1, cnt FROM table_nameUNION ALL SELECT id, lvl + 1, cnt FROM row_generator WHERE lvl
Så for testdataene:
OPRET TABEL tabelnavn ( ID, cnt ) ASSELECT 'A', 12 FRA DUAL UNION ALLSELECT 'B', 138 FRA DUAL
Begge disse løsninger ville udsende:
ID | COLUMN_VALUE | CNT:- | ----------:| --:A | 1 | 12A | 2 | 12A | 3 | 12 ...A | 10 | 12A | 11 | 12A | 12 | 12B | 1 | 138B | 2 | 138B | 3 | 138B | 4 | 138 ...B | 136 | 138B | 137 | 138B | 138 | 138
db<>spil her