Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

SQL:Bạn sẽ chia 100.000 bản ghi từ bảng Oracle thành 5 phần như thế nào?

Nếu bạn chỉ muốn gán giá trị 1-5 cho các nhóm có kích thước cơ bản bằng nhau, thì hãy sử dụng ntile() :

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

Nếu bạn muốn chèn vào 5 bảng khác nhau, hãy sử dụng 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. Ý nghĩa của byte kết xuất (systimestamp) của Oracle

  2. Cách kết nối với Kết nối cơ sở dữ liệu Oracle từ .Net Core

  3. SQL để trả về số ngày làm việc giữa 2 ngày đã qua

  4. Máy khách tức thì Oracle:ORA-28759:không mở được tệp

  5. Excel VBA kết nối với Oracle DB từ xa bằng InstantClient