Ergebnisse nach IN-Wertliste in PostgreSQL sortieren
In PostgreSQL wirkt sich die ORDER BY
-Klausel normalerweise auf Spalten in einer Tabelle aus. Es kann jedoch auch verwendet werden, um eine Reihenfolge auf der Grundlage externer Referenzen (z. B. IN-Klauseln) zu erzwingen.
Um sicherzustellen, dass die Abfrageergebnisse mit der Reihenfolge der Liste der IN-Werte übereinstimmen, können Sie das in PostgreSQL 8.2 eingeführte VALUES()
-Konstrukt verwenden.
Lösung:
Erstellen Sie eine temporäre Tabelle oder einen allgemeinen Tabellenausdruck (CTE), um IN-Werte der gewünschten Sortierreihenfolge zuzuordnen:
<code class="language-sql">WITH Ordering AS ( VALUES (1,1), (3,2), (2,3), (4,4) )</code>
Verknüpfen Sie die Haupttabelle mit dieser temporären Tabelle und geben Sie ihr einen Alias auf x:
<code class="language-sql">SELECT c.* FROM comments c JOIN Ordering x ON c.id = x.id ORDER BY x.ordering</code>
Durch Verweis auf die ORDER BY
-Spalte in der temporären Tabelle in der ordering
-Klausel werden die Ergebnisse in der in der IN-Klausel angegebenen Reihenfolge sortiert.
Das obige ist der detaillierte Inhalt vonWie sortiere ich PostgreSQL-Abfrageergebnisse nach der Reihenfolge der Werte in einer IN-Klausel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!