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.