Oracle
 sql >> Base de données >  >> RDS >> Oracle

Pourquoi Oracle renvoie-t-il une séquence spécifique si les valeurs 'orderby' sont identiques ?

L'ordre n'est pas dû au "pur hasard" - à moins que vous ne modifiiez la requête en :

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

La commande est "arbitraire". Plutôt que de "lancer des dés" pour décider de l'ordre arbitraire (ce qui entraînerait des coûts inutiles), Oracle renvoie simplement les données dans l'ordre dans lequel elles les ont rencontrées - ce qui est susceptible d'être le même d'une exécution à l'autre à court terme. (À long terme, quelque chose peut changer dans l'environnement pour rendre l'ordre différent - mais toujours arbitraire).