PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wird die Reihenfolge in einer Unterabfrage garantiert beibehalten?

Nein, setzen Sie die Bestellung nach in die äußere Abfrage:

SELECT name FROM
  (SELECT name, age FROM people WHERE age >= 18) p
ORDER BY p.age DESC
LIMIT 10

Die innere (Unter-)Abfrage gibt eine Ergebnismenge zurück. Wenn Sie die Reihenfolge dort eingeben, wird die Zwischenergebnismenge, die von der inneren (Unter-)Abfrage an die äußere Abfrage übergeben wird, garantiert so geordnet, wie Sie es festlegen, aber ohne eine Reihenfolge in der äußeren Abfrage, dem Ergebnis -set, das durch die Verarbeitung dieses inneren Abfrageergebnissatzes generiert wird, ist nicht garantiert, dass es in irgendeiner Weise sortiert wird.