Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 15626|Respuesta: 2

[Fuente] Problema de duplicado de datos con consulta de paginación por oráculo

[Copiar enlace]
Publicado en 20/9/2017 9:52:47 | | |

Las consultas de paginación se usan mucho durante el desarrollo de proyectos, y cuando quieres ordenar los datos por fecha, hay muchos datos duplicados.

Este problema ocurre porque el valor de la fecha no es único en los datos.

Lo sabemos

La consulta de paginación de Oracle no realiza ninguna operación de ordenación; Oracle lee los datos elegibles del bloque de datos secuencialmente y los devuelve al cliente.

El algoritmo de ordenación de Oracle no es estable, es decir, para datos con igual de clave, este algoritmo no garantiza que los datos iguales de clave mantengan el orden antes de ordenar después de que el algoritmo complete la ordenación.

La solución a este problema es añadir una columna única al final, como la clave primaria, para resolver el problema.



o






Anterior:Déjame recomendarte algunos proxies de IP extranjeras útiles.
Próximo:.net/c# para enviar descargas de programas de correo con archivos adjuntos
 Propietario| Publicado en 25/9/2017 16:00:51 |
La diferencia entre rownum y row_number() en Oracle
http://www.itsvse.com/thread-4107-1-1.html
(Fuente: Arquitecto)
 Propietario| Publicado en 25/9/2017 16:02:34 |
Un rownum se asigna a una fila después de donde filtrado por condiciones y antes de cualquier orden por o agregación. Al mismo tiempo, el rownum solo se incrementará cuando se asigne a una fila. El valor inicial de rownum es 1. Rownum ya no cambia tras ser generado en la consulta:
seleccionar * de emp donde ROWNUM < = 5 orden por sal desc;
El propósito de esta afirmación es devolver la información de los 5 empleados mejor pagados, pero según el principio de rownum, rownum ha sido generado antes que por orden, por lo que esta afirmación no cumple el papel de top 5, la sintaxis correcta es la siguiente:
select * from (select * from EMP order by SAL desc) donde ROWNUM <= 5;
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com