sql >> データベース >  >> RDS >> PostgreSQL

Postgresのjsonオブジェクトからキーと値を抽出します

    SELECT q.id, d.key, d.value
    FROM q
    JOIN json_each_text(q.data) d ON true
    ORDER BY 1, 2;
    

    関数json_each_text() は集合を返す関数なので、行ソースとして使用する必要があります。関数の出力はここにあります横方向に結合されています テーブルqへ 、つまり、テーブルの各行について、各(key, value) dataからのペア 列はその行にのみ結合されるため、元の行とjsonから形成された行との関係 オブジェクトは維持されます。

    テーブルq 非常に複雑なサブクエリ(またはVALUES)になることもあります。 あなたの質問のように、条項)。関数では、そのサブクエリの評価結果から適切な列が使用されるため、サブクエリのエイリアスとサブクエリの(のエイリアス)列への参照のみを使用します。

    >

    1. 最適化のしきい値–データのグループ化と集約、パート2

    2. Oracleを使用してストアド関数から複数の行を取得する方法

    3. エラー:Postgresを使用したシーケンスcitys_id_seqの権限が拒否されました

    4. 表形式なしでSQLクエリ結果を取得する