Oracle
 sql >> Baza danych >  >> RDS >> Oracle

SQL:Jak podzielić 100 000 rekordów z tabeli Oracle na 5 części?

Jeśli chcesz po prostu przypisać wartości 1-5 do zasadniczo równych grup, użyj ntile() :

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

Jeśli chcesz wstawić do 5 różnych tabel, użyj 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wybierz kolumny indeksu tabeli

  2. Liczenie wartości null jako wartości unikalnej

  3. Problem z Oracle Long Raw

  4. Warunkowe ograniczenie unikatowe z wieloma polami w Oracle db

  5. Jak kodować znaki z Oracle do XML?