Hace poco realizé una consulta en Oracle para obtener los 10 primeros comprobantes ordenados por mes. Mi consulta fue algo así:
Sin embargo, no me mostraba ordenado por mes.
Resulta que en Oracle primero se realiza el ROWNUM y luego el ORDER BY
Por lo que mi consulta tuvo que cambiar así:
Primero ordenar todo y luego cortar hasta el décimo registro.
Curioso....
SELECT * FROM COMPROBANTE WHERE ROWNUM = 10
ORDER BY MES
Sin embargo, no me mostraba ordenado por mes.
Resulta que en Oracle primero se realiza el ROWNUM y luego el ORDER BY
Por lo que mi consulta tuvo que cambiar así:
SELECT * FROM
(SELECT * FROM
COMPROBANTE
ORDER BY MES)
WHERE ROWNUM = 10
Primero ordenar todo y luego cortar hasta el décimo registro.
Curioso....
Comentarios
Y lo del rendimiento (o performance) es falso. Más aún Oracle tiene una optimización especial para el rownum.
Leo.