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 ?
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.
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>
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>
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>
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>
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!