我有一个表,比如Table1,它有Columns Referral_ID和Company Number,还有一个表Table2,它有很多唯一的Address IDS和Company Number。
我需要将唯一地址ID从表2随机带到表1,其中公司代码=公司代码?
我可以使用Oracle SQL执行此操作吗?
嗯。如果您想要任意地址,而不是随机的地址,则可以使用横向连接:
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;
如果你真的想要一个与每个公司号码相同的随机地址,你可以使用:
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;
这里有一个db<gt;fiddle说明语法有效。