Oracle
 sql >> Database >  >> RDS >> Oracle

Perché Oracle restituisce una sequenza specifica se i valori "orderby" sono identici?

L'ordine non dipende dal "puro caso", a meno che tu non modifichi la query in:

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

L'ordinamento è "arbitrario". Invece di "lanciare i dadi" per decidere l'ordine arbitrario (che comporterebbe un costo non necessario), Oracle restituisce semplicemente i dati nell'ordine in cui li ha incontrati, che probabilmente sarà lo stesso da un'esecuzione all'altra a breve termine. (A lungo termine, qualcosa potrebbe cambiare nell'ambiente per rendere l'ordinamento diverso, ma comunque arbitrario).