c.data
é o objeto jsonb, assim:{programs:[{...},{...}]}
c.data->'programs'
é matriz jsonb, assim [{a:1},{b:2},{c:3,d:4}]
ounull
Já tentei isso:
SELECT p
FROM Clients c , jsonb_array_elements(c.data->'programs') p
ou isto
SELECT p
FROM Clients c , jsonb_array_elements(COALESCE(c.data->'programs','[]'::JSONB)) p
mas apresenta um erro:
[22023] ERROR: cannot extract elements from a scalar
como posso recuperar o objeto dentro data->'programs'
como linhas de objeto?
Você pode usar um caminho JSON em vez disso, usando a
jsonb_path_query
função.db<>violino
Não importa, encontrei a resposta, deve filtrar o nulo primeiro