c.data
是jsonb对象,像这样:{programs:[{...},{...}]}
c.data->'programs'
是 jsonb 数组,像这样[{a:1},{b:2},{c:3,d:4}]
或null
已经尝试过这个:
SELECT p
FROM Clients c , jsonb_array_elements(c.data->'programs') p
或这个
SELECT p
FROM Clients c , jsonb_array_elements(COALESCE(c.data->'programs','[]'::JSONB)) p
但它显示一个错误:
[22023] ERROR: cannot extract elements from a scalar
如何将里面的对象检索为对象data->'programs'
行?
您可以改用 JSON 路径,使用该
jsonb_path_query
函数。db<>小提琴
没关系,找到答案了,必须先过滤null