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

テーブル列でのPostgresJSON関数の使用

    selectの後の式 単一の値に評価する必要があります。 jsonb_to_recordset以降 行と列のセットを返します。そこでは使用できません。

    解決策は、cross join lateral 、関数を使用して1つの行を複数の行に展開できます。これにより、selectする単一の行が得られます 行動することができます。例:

    select  *
    from    journal j
    cross join lateral
            jsonb_to_recordset(j.data#>'{context, data, files}') as d(id int, name text)
    where   j.id = 'ap32bbofopvo7pjgo07g'
    

    #>> オペレーター タイプtextを返します 、および#> 演算子はタイプjsonbを返します 。 jsonb_to_recordsetとして jsonbが必要です 最初のパラメータとして#>を使用しています 。

    rextester.comで動作することを確認してください



    1. Linux上のSQLServer2016

    2. Select(PostgreSQL / pgAdmin)でブール値をTRUEまたはFALSEとして返します

    3. SELECTINTOの前にSELECTCOUNT(*)を使用すると、例外を使用するよりも遅くなりますか?

    4. ルートパスワード設定でフリーズしたDockerのMySQL