Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 15626|Antwort: 2

[Quelle] Problem der Oracle-Paginationsabfragen-Sortierung von Datenduplikaten

[Link kopieren]
Veröffentlicht am 20.09.2017 09:52:47 | | |

Paginierungsabfragen werden während der Projektentwicklung häufig verwendet, und wenn man die Daten nach Datum sortieren will, gibt es viele doppelte Daten.

Dieses Problem entsteht, weil der Wert des Datums in den Daten nicht eindeutig ist.

Wir wissen

Oracles Paginierungsabfrage führt keine Sortieroperationen durch, Oracle liest die berechtigten Daten aus dem Datenblock nacheinander und gibt sie an den Client zurück.

Oracles Sortieralgorithmus ist nicht stabil, das heißt, für schlüsselgleiche Daten garantiert dieser Algorithmus nicht, dass die schlüsselgleichen Daten die Reihenfolge vor der Sortierung nach Abschluss des Algorithmus beibehalten.

Die Lösung dieses Problems besteht darin, am Ende eine eindeutige Spalte hinzuzufügen, wie zum Beispiel den Primärschlüssel, um das Problem zu lösen.



oder






Vorhergehend:Ich möchte Ihnen ein paar nützliche ausländische IP-Proxys empfehlen.
Nächster:.net/c#, um E-Mail-Programm-Downloads mit Anhängen zu senden
 Vermieter| Veröffentlicht am 25.09.2017 16:00:51 |
Der Unterschied zwischen rownum und row_number() in Oracle
http://www.itsvse.com/thread-4107-1-1.html
(Quelle: Architekt)
 Vermieter| Veröffentlicht am 25.09.2017 16:02:34 |
Ein Rownum wird einer Zeile nach der Bedingungsfilterung und vor jeder Reihenfolge durch oder Aggregation zugewiesen. Gleichzeitig wird das Rownum nur erhöht, wenn es einer Zeile zugewiesen wird. Der Anfangswert von Rownum beträgt 1. rownum ändert sich nicht mehr, nachdem es in der Abfrage generiert wurde:
wähle * aus emp, wobei ROWNUM <= 5 Ordnung durch sal desc;
Zweck dieser Aussage ist es, die Informationen der fünf bestbezahlten Mitarbeiter zurückzugeben, aber nach dem Prinzip des Rownum wurde Rownum vor der Reihenfolge von generiert, sodass diese Aussage nicht die Rolle der Top 5 spielt, die korrekte Syntax ist wie folgt:
Wählen Sie * aus (wählen * aus dem EMP-Befehl von Sal Desc), wobei ROWNUM <= 5 gilt;
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com