Heim > Datenbank > MySQL-Tutorial > Wie sortiere ich PostgreSQL-Abfrageergebnisse nach der Reihenfolge der Werte in einer IN-Klausel?

Wie sortiere ich PostgreSQL-Abfrageergebnisse nach der Reihenfolge der Werte in einer IN-Klausel?

Patricia Arquette
Freigeben: 2025-01-19 10:56:09
Original
213 Leute haben es durchsucht

How to Sort PostgreSQL Query Results by the Order of Values in an IN Clause?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage