Secondo Tom Kyte:"A meno che e fino a quando non aggiungi "ordina per" a una query, non puoi dire NULLA sull'ordine delle righe restituite. Bene, a parte 'non puoi fare affidamento sull'ordine delle righe restituite'."
Vedi questa domanda su asktom.com.
Quanto a ROWNUM, non esiste fisicamente, quindi non può essere "liberato". ROWNUM viene assegnato dopo che un record è stato recuperato da una tabella, motivo per cui "WHERE ROWNUM =5" non riuscirà sempre a selezionare alcun record.
@ammoQ:potresti voler leggere questo articolo di AskTom sugli ordini GROUP BY. In breve:
Una clausola Group By in una Query garantisce che i dati di output siano ordinati nelle colonne Group By in ordine, anche se NESSUNA clausola Order By?
e abbiamo detto...
ASSOLUTAMENTE NO,
Non l'ha mai fatto, non l'ha mai fatto, non lo farà mai.