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

Cập nhật cột bằng cách sử dụng các giá trị duy nhất ngẫu nhiên từ một bảng khác

Hmmmm. . . Bạn có thể sử dụng phép nối bên nếu bạn muốn tùy ý địa chỉ thay vì một ngẫu nhiên địa chỉ:

select t1.*, t2.*
from table1 t1 left join lateral
     (select t2.*
      from table2 t2
      where t2.company_number = t1.company_number and rownum = 1
     ) t2
     on 1=1;

Nếu bạn thực sự muốn một địa chỉ ngẫu nhiên giống nhau cho mỗi số công ty, bạn có thể sử dụng:

select t1.*, t2.*
from table1 t1 left join lateral
     (select t2.*,
             row_number() over (partition by company_number order by dbms_random.random) as seqnum
      from table2 t2
     ) t2
     on t2.company_number = t1.company_number and
        seqnum = 1;

Tại đây là một db <> fiddle minh họa rằng cú pháp hoạt động.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. bảng xml to oracle DB:gặp sự cố

  2. Hàng đợi nâng cao Oracle trong Java

  3. Cách tối ưu hóa SQL cập nhật chạy trên bảng Oracle với 700 triệu hàng

  4. Hiệu suất điều chỉnh mê cung

  5. Hiểu về Java của Oracle trên Mac