¿Cuál es la diferencia entre ROWNUM
y ROW_NUMBER
?En una base de datos Oracle, ¿cuál es la diferencia entre ROWNUM y ROW_NUMBER?
Respuesta
ROWNUM es un "pseudocolumna" que asigna un número a cada fila devuelta por una consulta:
SQL> select rownum, ename, deptno
2 from emp;
ROWNUM ENAME DEPTNO
---------- ---------- ----------
1 SMITH 99
2 ALLEN 30
3 WARD 30
4 JONES 20
5 MARTIN 30
6 BLAKE 30
7 CLARK 10
8 SCOTT 20
9 KING 10
10 TURNER 30
11 FORD 20
12 MILLER 10
ROW_NUMBER es una función analítica que asigna un número a cada fila de acuerdo a su orden dentro de un grupo de filas :
SQL> select ename, deptno, row_number() over (partition by deptno order by ename) rn
2 from emp;
ENAME DEPTNO RN
---------- ---------- ----------
CLARK 10 1
KING 10 2
MILLER 10 3
FORD 20 1
JONES 20 2
SCOTT 20 3
ALLEN 30 1
BLAKE 30 2
MARTIN 30 3
TURNER 30 4
WARD 30 5
SMITH 99 1
de un poco de lectura, ROWNUM es un valor asignado de forma automática por Oracle a un conjunto de filas (antes de ORDER BY que se está evaluando, por lo que no siempre ORDER BY ROWNUM
o utilizar un WHERE ROWNUM < 10
con un ORDER BY
).
ROW_NUMBER() parece ser una función para asignar números de fila a un conjunto de resultados devuelto por una subconsulta o partición.
rownum es una pseudocolumna que se puede agregar a cualquier consulta de selección, para numerar las filas devueltas (empezando por 1). Se ordenan según el momento en que se identificaron como parte del conjunto de resultados final. (#ref)
row_number es la función de una analítica, que puede ser utilizado para numerar las filas devueltas por la consulta en un orden dispuesto por la función row_number().
-1 para "Están numerados en el orden en que se devuelven las filas". No es cierto: se ordenan de acuerdo con el momento en que se identificaron como parte del conjunto de resultados final, por lo que es anterior a una cláusula ORDER BY –
Aparte de las otras diferencias mencionadas en las respuestas, también debe considerar el rendimiento. Hay un informe de no autorizada, pero muy interesante aquí, la comparación de diversos medios de paginación, entre los cuales el uso de ROWNUM
en comparación con ROW_NUMBER() OVER()
:
ROWNUM comienza con 1 ..increases después condición evaluada resultados a cierto . Por lo tanto, rownum> = 1 devuelve todas las filas en la tabla
- 1. ¿Cuál es la diferencia entre una base de datos y un depósito de datos?
- 2. ¿Cuál es la diferencia entre un esquema y una tabla y una base de datos?
- 3. En una base de datos, ¿cuál es la diferencia entre una clave y un índice?
- 4. ¿Cuál es la diferencia entre una base de datos basada en archivos y una base de datos basada en servidor?
- 5. ¿Cuál es la diferencia entre los tipos de datos brutos largos y largos en Oracle?
- 6. ¿Cuál es la diferencia entre el conjunto de datos y la base de datos?
- 7. ¿Cuál es la mejor forma de conectarse entre la base de datos android y oracle?
- 8. ¿Cuál es la diferencia entre NoSQL y una base de datos orientada a columnas?
- 9. diferencia al usar ROWNUM
- 10. SQLite equivalente para Oracle ROWNUM?
- 11. Oracle ROWNUM rendimiento
- 12. ¿Cuál es la diferencia entre una combinación hash y una combinación merge (RDBMS de Oracle)?
- 13. ¿Cuál es la diferencia entre Cassandra vs Oracle Coherence?
- 14. ¿Cuál es la diferencia entre 'no en' y 'no existe'?
- 15. ¿Cuál es la diferencia entre los datos-dojotype y dojoType?
- 16. ¿Cuál es la diferencia entre pls_integer y binary_integer?
- 17. ¿Cómo puedo acelerar row_number en Oracle?
- 18. ¿Cuál es la diferencia entre dict() y {}?
- 19. ¿Cuál es la diferencia entre ".equals" y "=="?
- 20. ¿Cuál es la mejor forma de archivar datos en una base de datos Oracle?
- 21. ¿Cuál es la diferencia entre persist() y merge() en Hibernate?
- 22. ¿Cuál es la diferencia entre {0} y ""?
- 23. ¿Cuál es la diferencia entre .ToString (+) y ""
- 24. ¿cuál es la diferencia entre el complemento y la biblioteca?
- 25. ¿Cuál es la diferencia entre() y [] en una expresión regular?
- 26. ¿cuál es la diferencia entre:.! y: r !?
- 27. Cuál es la diferencia entre = y: =
- 28. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 29. ¿Cuál es la diferencia entre + = y = +?
- 30. Cuál es la diferencia entre $ y jQuery
ordenar por es correcto, por ejemplo, seleccionar * de (seleccionar a, b, c desde foo ordenar por d) donde rownum <10 – Ron
@Ron: Pruébelo. Descubrirá de la peor manera que toma los primeros 10 resultados de todo el conjunto de resultados, y luego los ordena. – Powerlord
@Powerlord: si usamos la consulta interna, se aplicará rownum en el resultado de la consulta interna – Ali786