Uso de rownum en la sentencia SQL de Oracle en combinación con cláusula orden por

¿Cuál de las siguientes dos sentencias de SQL devolverá el conjunto de resultados deseado? (es decir, las diez filas con Estado = 0 y los tiempos de inicio más altos)?

¿Ambas declaraciones siempre devolverán el mismo conjunto de resultados? (StartTime es único)?

<code>SELECT * 
FROM MyTable 
WHERE Status=0 
AND ROWNUM <= 10 
ORDER BY StartTime DESC

SELECT * 
FROM (
    SELECT * 
    FROM MyTable 
    WHERE Status=0 
    ORDER BY StartTime DESC
) 
WHERE ROWNUM <= 10
</code>

Fondo

Mi DBAdmin me dijo que la primera declaración seráprimero Limite la tabla a 10 filas y luego ordene esas filas aleatorias por StartTime, que definitivamente no es lo que quiero. De lo que aprendí enesa respuestaLa orden por la cláusula de la segunda declaración es redundante y podría ser eliminada por un optimizador, que tampoco es lo que quiero.

Le pregunte apregunta similar de acuerdo con ellimit en una consulta a una base de datos SQLite y estoy interesado en comprender cualquier diferencia con las afirmaciones anteriores (usandolimit Vsrownum) utilizado con un oráculo db.

Respuestas a la pregunta(1)

Su respuesta a la pregunta