我需要使用TableB.columnB中的随机值更新TableA.columnA。业务案例:我在TableA中有成千上万的客户合同,我需要为他们分配TableB中的随机销售代表
如果我使用select * from tableb order by dbms_random.random
,它只设置columnA 1随机值,但我需要全部11
Oracle 11.2 +
答案 0 :(得分:0)
使用DBMS_RANDOM.VALUE()(因为不推荐使用RANDOM)并生成介于1和TableB的行数之间的值。然后,这样做:
select * from (
select b.*, b_rownum=rownum from TableB b where rownum <= <your_random_rownum>
) where b_rownum = <your_random_rownum>
从TableB获取一个随机行