Wie funktioniert die order by-Klausel funktioniert, wenn zwei Werte gleich sind?
Dies ist meine ZEITUNG Tabelle.
National News A 1
Sports D 1
Editorials A 12
Business E 1
Weather C 2
Television B 7
Births F 7
Classified F 8
Modern Life B 1
Comics C 4
Movies B 4
Bridge B 2
Obituaries F 6
Doctor Is In F 6
Wenn ich diese Abfrage ausführen
select feature,section,page from NEWSPAPER
where section = 'F'
order by page;
Gibt es diese Ausgabe
Doctor Is In F 6
Obituaries F 6
Births F 7
Classified F 8
Aber in Kevin Loney ist Oracle 10g Complete Reference die Ausgabe wie diese
Obituaries F 6
Doctor Is In F 6
Births F 7
Classified F 8
Bitte helfen Sie mir zu verstehen, wie es passiert ist.
- Sind Sie nicht die gleiche Ausgabe? Jedenfalls, der Auftrag für die Ergebnisse, die mit dem gleichen Wert nicht definiert ist, und wahrscheinlich kommt wieder auf, wie Sie passieren auf dem Datenträger gespeichert werden.
- Die Ausgabe ist die gleiche?
- Oh sorry war nicht in der Lage zu kopieren Sie die Ausgabe aus dem Buch richtig. Hinzugefügt die Ausgabe von dem Buch richtig.
- Sie geschehen zu sein auf der Festplatte gespeichert? Ist es in Ordnung, Sie sind eingefügt in die Tabelle oder basierend auf dem OS?
Du musst angemeldet sein, um einen Kommentar abzugeben.
In relationale Datenbanken, Tabellen, sets und sind ungeordnet. Die
order by
- Klausel wird in Erster Linie für die Ausgabe Zwecke (und ein paar anderen Fällen, wie etwa einer Unterabfrage mitrownum
).Dies ist ein guter Ort, um zu starten. Der SQL-standard nicht spezifiziert, was zu geschehen hat, wenn die Tasten auf einem
order by
sind die gleichen. Und dies aus gutem Grund. Verschiedene Techniken können für die Sortierung verwendet werden. Manche mögen stabil sein (die Erhaltung der ursprünglichen Reihenfolge). Einige Methoden, die vielleicht nicht sein.Darauf konzentrieren, ob die gleichen Zeilen sind die sets, nicht Ihre Reihenfolge. Übrigens, ich würde dies ein unglückliches Beispiel. Das Buch sollte nicht zweideutige Art in seinen Beispielen.
Wenn Sie brauchen zuverlässige, reproduzierbare Bestellung auftreten, wenn zwei Werte in Ihrem
ORDER BY
- Klausel der ersten Spalte sind die gleichen, sollten Sie immer eine weitere, sekundäre Spalte, um auch die Bestellung auf. Während Sie vielleicht in der Lage sein, zu vermuten, dass Sie Sortieren sich basierend auf der Reihenfolge eingegeben (fast immer der Fall ist, meines Wissens, aber bewusst sein, dass der SQL-standard nicht spezifiziert, jegliche form von Standard-Bestellung) oder index, Sie sollten nie (es sei denn, es ist explizit dokumentiert, der als solcher für den Motor, die Sie verwenden-und selbst dann würde ich persönlich niemals darauf verlassen, dass).Ihre Anfrage, wenn Sie wollten, dass die alphabetische Sortierung nach feature auf jeder Seite, sollte: