更新来自不同表的随机值列

时间:2014-07-05 15:05:15

标签: sql oracle

我需要使用TableB.columnB中的随机值更新TableA.columnA。业务案例:我在TableA中有成千上万的客户合同,我需要为他们分配TableB中的随机销售代表

如果我使用select * from tableb order by dbms_random.random,它只设置columnA 1随机值,但我需要全部11

Oracle 11.2 +

1 个答案:

答案 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获取一个随机行