sql >> Database teknologi >  >> RDS >> Oracle

hvordan duplikere mine sql resultater?

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




  1. Sådan indstilles værdien af ​​det sammensatte variabelfelt ved hjælp af dynamisk SQL

  2. Deltager du i PASS Summit i Charlotte?

  3. FIND_IN_SET() vs IN()

  4. Find rækker med flere duplikerede felter med Active Record, Rails &Postgres