从文档中我看到cast(random() * 1000 as int)
给出了1到1000之间的随机整数。但是,我得到了很多重复项 - 是否有办法获得一个独特的随机数?为了澄清,总记录<1000
答案 0 :(得分:3)
您可以使用row_number()
分配随机数:
select row_number() over (order by random())
这似乎足以满足大多数目的。您可以将这些缩放为1000:
select trunc(1000 * (row_number() over (order by random()) * 1.0 / count(*) over () ))
答案 1 :(得分:0)
复制它的方法可能是在子查询中选择比你需要的更多的数字(x2或x3),然后从该子查询中选择不同的