Maison > base de données > tutoriel mysql > Comment renvoyer plusieurs colonnes de la même ligne en tant que tableau d'objets JSON dans PostgreSQL ?

Comment renvoyer plusieurs colonnes de la même ligne en tant que tableau d'objets JSON dans PostgreSQL ?

Patricia Arquette
Libérer: 2025-01-14 22:01:49
original
548 Les gens l'ont consulté

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

Renvoi de plusieurs colonnes sous forme de tableau d'objets JSON dans PostgreSQL

PostgreSQL propose plusieurs approches pour interroger et formater les données sous forme de tableau d'objets JSON, regroupant les résultats par une colonne spécifique. Voici une liste des méthodes pour différentes versions de PostgreSQL.

PostgreSQL 10 et versions ultérieures

Pour supprimer des clés spécifiques de l'objet JSON agrégé, utilisez l'opérateur - avant l'agrégation. Un casting explicite vers text[] est nécessaire pour résoudre l'ambiguïté avec la fonction surchargée :

<code class="language-sql">SELECT val2, jsonb_agg(to_jsonb(t.*) - '{id, val2}'::text[]) AS js_34
FROM   tbl
GROUP  BY val2;</code>
Copier après la connexion

PostgreSQL 9.4 et versions ultérieures

Utilisez jsonb_build_object() pour construire un objet JSON à partir de paires clé-valeur :

<code class="language-sql">SELECT val2, jsonb_agg(jsonb_build_object('val3', val3, 'val4', val4)) AS js_34
FROM   tbl 
GROUP  BY val2;</code>
Copier après la connexion

PostgreSQL 9.3 et versions ultérieures

Employer to_jsonb() avec une expression ou une sous-requête ROW pour générer le tableau d'objets :

<code class="language-sql">SELECT val2, jsonb_agg(to_jsonb((val3, val4))) AS js_34
FROM   tbl
GROUP  BY val2;</code>
Copier après la connexion

Alternative :

<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>
Copier après la connexion

Ces méthodes fournissent des moyens efficaces pour récupérer et structurer des données, regrouper des valeurs et créer des tableaux JSON d'objets représentant plusieurs colonnes à partir d'une seule ligne.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal