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
が必要です 最初のパラメータとして#>
を使用しています 。