Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 15626|Répondre: 2

[Source] Problème de duplication des données par requête par pagination Oracle

[Copié le lien]
Publié sur 20/09/2017 09:52:47 | | |

Les requêtes de pagination sont beaucoup utilisées lors du développement de projets, et quand on veut trier les données par date, il y a beaucoup de données en double.

Ce problème survient parce que la valeur de la date n’est pas unique dans les données.

On sait

La requête de pagination d’Oracle n’effectue aucune opération de tri, Oracle lit séquentiellement les données éligibles du bloc de données et les renvoie au client.

L’algorithme de tri d’Oracle n’est pas stable, c’est-à-dire que pour les données à clé égale, cet algorithme ne garantit pas que les données à clé égale maintiendront l’ordre avant de trier après que l’algorithme ait terminé le tri.

La solution à ce problème consiste à ajouter une colonne unique à la fin, comme la clé primaire, pour résoudre le problème.



ou






Précédent:Laissez-moi vous recommander quelques proxys d’IP étrangères utiles.
Prochain:.net/c# pour envoyer des téléchargements de programmes par email avec pièces jointes
 Propriétaire| Publié sur 25/09/2017 16:00:51 |
La différence entre rownum et row_number() dans Oracle
http://www.itsvse.com/thread-4107-1-1.html
(Source : Architecte)
 Propriétaire| Publié sur 25/09/2017 16:02:34 |
Un rownum est attribué à une ligne après où le filtrage des conditions et avant tout ordre par ou agrégation. En même temps, le rownum ne sera incrémenté que lorsqu’il est assigné à une ligne. La valeur initiale de rownum est 1. Rownum ne change plus après avoir été généré dans la requête :
sélectionner * à partir d’emp où ROWNUM <= 5 ordre par sal desc ;
Le but de cette déclaration est de renvoyer les informations des 5 employés les mieux payés, mais selon le principe de rownum, rownum a été généré avant l’ordre par , donc cette déclaration ne joue pas le rôle du top 5, la syntaxe correcte est la suivante :
select * from (select * from EMP order by SAL desc) où ROWNUM <= 5 ;
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com