Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Beim Versuch, eine bestimmte Zeile in Oracle SQL auszuwählen, wurden mehrere Zeilen zurückgegeben

Das liegt daran, dass dbms_random() wird für jede Zeile aufgerufen, sodass doppelte Ergebnisse generiert werden können. Wenn Sie stattdessen eine zufällige Zeile wünschen, versuchen Sie Folgendes:

select tid
from (select tid,
             row_number() over (order by dbms_random.value()) as seqnum
      from Train
     ) t
where seqnum = 1;

Dies wird immer die Zeile mit "seqnum =1" zurückgeben, aber es wird eine zufällige tid sein .