Mögliche Duplizieren:
Why do results from a SQL query not come back in the order I expect?Ist die PostgreSQL-Bestellung vollständig garantiert, wenn nach einem nicht eindeutigen Attribut sortiert wird?
Von 7.5 Sorting Rows zu lesen und von Fragen, die ich mit PostgreSQL gesehen habe, habe den Eindruck, die folgenden, aber dieser Abschnitt nicht vollständig explizit, so würde ich Seien Sie dankbar, wenn jemand bestätigen könnte:
SELECT * FROM items;
hat keine garantierte Bestellung.
SELECT * FROM items ORDER BY published_date ASC;
garantiert, dass zwei Elemente mit unterschiedlichen Terminen kommen in einer bestimmten Reihenfolge, aber tun nicht Garantie, dass zwei Elemente mit dem gleichen Datum immer in der gleichen Reihenfolge kommen.
SELECT * FROM items ORDER BY published_date ASC, id ASC;
liefert immer Elemente in der gleichen Reihenfolge, da es vollständig deterministisch ist.
Habe ich das richtig?
Ich bin nicht ganz klar darüber, ob die Sortierung auf ein Attribut (wie published_date
) die Reihenfolge für Datensätze mit dem gleichen Wert garantiert, wie im zweiten Beispiel.
Sie haben es richtig. Die einzige Reihenfolge, die garantiert ist, ist die Reihenfolge, die Ihr "ORDER BY" auferlegt. Wenn innerhalb dieser Reihenfolge Permutationen * möglich sind, könnten diese alle eine gültige Ausgabe sein. – wildplasser
Dies ist ein spezieller Fall der Frage: http://stackoverflow.com/questions/10999913/why-do-results-from-a-sql-query-not-come-back-in-the-order-i- Erwarten Sie –