Sono sconcertato da una query in Oracle che sta tornando in un ordine apparentemente casuale.Perché Oracle restituisce una sequenza specifica se i valori di "orderby" sono identici?
SELECT
Date,
Amount
FROM MyTable
WHERE Date = '26-OCT-2010'
ORDER BY Date
Ciò restituisce i seguenti dati:
| Date | Amount
--------------------------
1 | 26-OCT-10 | 85
2 | 26-OCT-10 | 9
3 | 26-OCT-10 | 100
Non riesco a capire il motivo per cui il database restituisce i dati in questo ordine specifico, o perché, dal momento che la tabella originale sarebbe restituire i dati in questo modo.
Casting Date
a TIMESTAMP
conferma che tutte Date
valori sono lo stesso valore - 26-OCT-10 00.00.00.000000000
, pertanto, può escludere che v'è una differenza nei valori. Tuttavia, quando faccio questo, le righe ritornano nell'ordine di 1, 3, 2.
Questo mi sta facendo impazzire quindi mi aiuterebbe davvero a calmarmi se qualcuno potesse fornire una spiegazione sul perché questo sia.
Mi aspetto che questo venga restituito in un ordine diverso ogni volta che viene eseguita la query, dato che l'ordine condizionale è identico su ogni riga (lasciando così l'ordine alla pura casualità).
Molte grazie in anticipo.
Grazie per la spiegazione! Ho pensato che potesse semplicemente "ritornare" all'ordine incontrato, come SQL Server, ma non ne ero così sicuro. Grazie ancora! –