PostgreSQL-Abfrageergebnisse nach der Reihenfolge der Werte in der IN-Liste sortieren
In PostgreSQL können Sie mit der IN-Struktur in der WHERE-Klausel eine Reihe von Werten angeben, die einer Spalte entsprechen. Allerdings kann das Sortieren der Ergebniszeilen nach der Reihenfolge der Werte in der IN-Liste eine Herausforderung sein.
Glücklicherweise führt PostgreSQL 8.2 die VALUES()-Struktur ein, mit der Sie eine virtuelle Tabelle mit bestimmten Werten und einer bestimmten Reihenfolge erstellen können. Dadurch können wir die Ergebnisse nach der Reihenfolge der Werte in der IN-Liste sortieren.
Um dies zu erreichen, verwenden Sie die folgende Syntax:
select c.* from comments c join ( values (1,1), (3,2), (2,3), (4,4) ) as x (id, ordering) on c.id = x.id order by x.ordering
In diesem Beispiel verwenden wir die Struktur VALUES(), um eine virtuelle Tabelle mit dem Namen „x“ zu erstellen. Jede Zeile in dieser virtuellen Tabelle repräsentiert einen Wert in der IN-Liste und die entsprechende Reihenfolge. Anschließend verbinden wir die „Kommentar“-Tabelle mit der „x“-Tabelle basierend auf der „id“-Spalte und sortieren die Ergebnisse nach der „ordering“-Spalte. Dadurch wird sichergestellt, dass die abgerufenen Zeilen in der in der IN-Liste angegebenen Reihenfolge sortiert werden: (1,3,2,4).
Das obige ist der detaillierte Inhalt vonWie ordne ich PostgreSQL-Abfrageergebnisse basierend auf der Reihenfolge der Werte in einer IN-Liste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!