postgresql 11 select 来自其他 table 字段路径的 jsonb 数据的值

postgresql 11 select value from jsonb data by path from other table field

我的 table 中有 jsonb 字段 'data'。我可以通过 select data#>'{key1,subKey}' from table 获取 subKey 的值。如果路径作为字符串 'key1,subKey' 存储在另一个 table 中,如何将路径插入 select?

您真的应该将它存储为一个数组,而不是一个字符串,因为这就是它的使用方式。您可以将它动态地拆分为一个数组,但是如果您需要逗号按字面意思出现在路径中怎么办?

with t as (select '{"key1":{"subKey":"foo"}}'::jsonb as data), 
     k as (select 'key1,subKey' as k)
select data#>regexp_split_to_array(k,',') from t,k;