那是因为dbms_random()
每行都会被调用,因此它可以生成重复的结果。相反,如果您想要一个随机行,请尝试如下操作:
select tid
from (select tid,
row_number() over (order by dbms_random.value()) as seqnum
from Train
) t
where seqnum = 1;
这将始终返回具有“ seqnum = 1”的行,但它将是一个random tid
。