Heim >Datenbank >MySQL-Tutorial >Wie ordne ich PostgreSQL-Abfrageergebnisse basierend auf der Reihenfolge der Werte in einer IN-Liste?

Wie ordne ich PostgreSQL-Abfrageergebnisse basierend auf der Reihenfolge der Werte in einer IN-Liste?

Barbara Streisand
Barbara StreisandOriginal
2025-01-19 11:06:11738Durchsuche

How to Order PostgreSQL Query Results Based on the Order of Values in an IN List?

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:

<code class="language-sql">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</code>

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn