Heim > Datenbank > MySQL-Tutorial > Wie kann ich in PostgreSQL mehrere Spalten aus derselben Zeile als JSON-Array von Objekten zurückgeben?

Wie kann ich in PostgreSQL mehrere Spalten aus derselben Zeile als JSON-Array von Objekten zurückgeben?

Patricia Arquette
Freigeben: 2025-01-14 22:01:49
Original
549 Leute haben es durchsucht

How to Return Multiple Columns from the Same Row as a JSON Array of Objects in PostgreSQL?

Mehrere Spalten als JSON-Array von Objekten in PostgreSQL zurückgeben

PostgreSQL bietet verschiedene Ansätze zum Abfragen und Formatieren von Daten als JSON-Array von Objekten, wobei die Ergebnisse nach einer bestimmten Spalte gruppiert werden. Hier ist eine Aufschlüsselung der Methoden für verschiedene PostgreSQL-Versionen.

PostgreSQL 10 und höher

Um bestimmte Schlüssel aus dem aggregierten JSON-Objekt zu entfernen, verwenden Sie vor der Aggregation den Operator -. Eine explizite Umwandlung in text[] ist erforderlich, um Mehrdeutigkeiten mit der überladenen Funktion zu beseitigen:

<code class="language-sql">SELECT val2, jsonb_agg(to_jsonb(t.*) - '{id, val2}'::text[]) AS js_34
FROM   tbl
GROUP  BY val2;</code>
Nach dem Login kopieren

PostgreSQL 9.4 und höher

Verwenden Sie jsonb_build_object(), um ein JSON-Objekt aus Schlüssel-Wert-Paaren zu erstellen:

<code class="language-sql">SELECT val2, jsonb_agg(jsonb_build_object('val3', val3, 'val4', val4)) AS js_34
FROM   tbl 
GROUP  BY val2;</code>
Nach dem Login kopieren

PostgreSQL 9.3 und höher

Verwenden Sie to_jsonb() mit einem ROW-Ausdruck oder einer Unterabfrage, um das Array von Objekten zu generieren:

<code class="language-sql">SELECT val2, jsonb_agg(to_jsonb((val3, val4))) AS js_34
FROM   tbl
GROUP  BY val2;</code>
Nach dem Login kopieren

Alternativ:

<code class="language-sql">SELECT val2, jsonb_agg(to_jsonb((SELECT t FROM (SELECT val3, val4) t))) AS js_34
FROM   tbl
GROUP  BY val2;</code>
Nach dem Login kopieren

Diese Methoden bieten effiziente Möglichkeiten zum Abrufen und Strukturieren von Daten, zum Gruppieren von Werten und zum Erstellen von JSON-Arrays von Objekten, die mehrere Spalten aus einer einzelnen Zeile darstellen.

Das obige ist der detaillierte Inhalt vonWie kann ich in PostgreSQL mehrere Spalten aus derselben Zeile als JSON-Array von Objekten zurückgeben?. 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