Heim >Datenbank >MySQL-Tutorial >Wie kann ich in PostgreSQL mehrere Spalten aus derselben Zeile als JSON-Array von Objekten 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.
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>
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>
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>
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>
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!