Selon Tom Kyte :"A moins que et jusqu'à ce que vous ajoutiez "trier par" à une requête, vous ne pouvez RIEN dire sur l'ordre des lignes renvoyées. Eh bien, à moins de 'vous ne pouvez pas vous fier à l'ordre des lignes renvoyées'."
Voir cette question sur asktom.com.
Quant à ROWNUM, il n'existe pas physiquement, il ne peut donc pas être "libéré". ROWNUM est attribué après la récupération d'un enregistrement à partir d'une table, c'est pourquoi "WHERE ROWNUM =5" échouera toujours à sélectionner des enregistrements.
@ammoQ :vous voudrez peut-être lire cet article AskTom sur la commande GROUP BY. En bref :
Une clause Group By dans une requête garantit-elle que les données de sortie seront triées sur les colonnes Group By dans l'ordre, même s'il n'y a PAS de clause Order By ?
et nous avons dit...
ABSOLUMENT PAS,
Ça ne l'a jamais fait, ça ne l'a jamais fait, ça ne le fera jamais.