ऐसा इसलिए है क्योंकि 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
होगा ।