sql >> Database >  >> RDS >> Oracle

SQL:Hoe zou je 100.000 records van een Oracle-tabel in 5 stukken splitsen?

Als u alleen waarden 1-5 wilt toewijzen aan groepen van ongeveer gelijke grootte, gebruik dan ntile() :

select t.*, ntile(5) over (order by NULL) as num
from (select t.*
      from t
      where rownum <= 100000
     ) t;

Als je in 5 verschillende tabellen wilt invoegen, gebruik dan insert all :

insert all
    when num = 1 then into t1
    when num = 2 then into t2
    when num = 3 then into t3
    when num = 4 then into t4
    when num = 5 then into t5
    select t.*, ntile(5) over (order by NULL) as num
    from (select t.*
          from t
          where rownum <= 100000
         ) t;


  1. PL/SQL print ref-cursor geretourneerd door een opgeslagen procedure

  2. Sphinx integreren in MySQL

  3. Entiteitsrelatiemodel voor toepassing student / adviseur

  4. meerdere kolommen instellen met één update