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

Warum gibt Oracle eine bestimmte Sequenz zurück, wenn die 'orderby'-Werte identisch sind?

Die Reihenfolge ist nicht "purer Zufall" - es sei denn, Sie ändern die Abfrage zu:

SELECT
  Date,
  Amount
FROM MyTable
WHERE Date = '26-OCT-2010'
ORDER BY Date, DBMS_RANDOM.VALUE;

Die Reihenfolge ist "willkürlich". Anstatt „zu würfeln“, um die willkürliche Reihenfolge zu bestimmen (was einige unnötige Kosten verursachen würde), gibt Oracle die Daten einfach in der Reihenfolge zurück, in der es sie angetroffen hat – was kurzfristig wahrscheinlich von Lauf zu Lauf gleich sein wird. (Langfristig kann sich etwas in der Umgebung ändern, um die Reihenfolge anders zu gestalten - aber immer noch willkürlich).