ホームページ > データベース > mysql チュートリアル > PostgreSQLでオブジェクトのJSON配列として同じ行から複数​​の列を返す方法は?

PostgreSQLでオブジェクトのJSON配列として同じ行から複数​​の列を返す方法は?

Patricia Arquette
リリース: 2025-01-14 22:01:49
オリジナル
549 人が閲覧しました

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

PostgreSQL で複数の列をオブジェクトの JSON 配列として返す

PostgreSQL は、データをオブジェクトの JSON 配列としてクエリおよびフォーマットし、結果を特定の列ごとにグループ化するためのいくつかのアプローチを提供します。 以下に、さまざまな PostgreSQL バージョンのメソッドの内訳を示します。

PostgreSQL 10 以降

集約された JSON オブジェクトから特定のキーを削除するには、集約の前に - 演算子を使用します。 オーバーロードされた関数のあいまいさを解決するには、text[] への明示的なキャストが必要です:

<code class="language-sql">SELECT val2, jsonb_agg(to_jsonb(t.*) - '{id, val2}'::text[]) AS js_34
FROM   tbl
GROUP  BY val2;</code>
ログイン後にコピー

PostgreSQL 9.4 以降

jsonb_build_object() を使用して、キーと値のペアから JSON オブジェクトを構築します。

<code class="language-sql">SELECT val2, jsonb_agg(jsonb_build_object('val3', val3, 'val4', val4)) AS js_34
FROM   tbl 
GROUP  BY val2;</code>
ログイン後にコピー

PostgreSQL 9.3 以降

ROW 式またはサブクエリで to_jsonb() を使用して、オブジェクトの配列を生成します。

<code class="language-sql">SELECT val2, jsonb_agg(to_jsonb((val3, val4))) AS js_34
FROM   tbl
GROUP  BY val2;</code>
ログイン後にコピー

または:

<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>
ログイン後にコピー

これらのメソッドは、データを取得して構造化し、値をグループ化し、単一行から複数​​の列を表すオブジェクトの JSON 配列を作成する効率的な方法を提供します。

以上がPostgreSQLでオブジェクトのJSON配列として同じ行から複数​​の列を返す方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート