Това е така, защото 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", но ще бъде случаен tid
.