У меня есть таблица, в которой есть столбец jsonb (называемый info), имеющий два типа фигур: иногда это объект, а иногда массив объектов.
Я хочу иметь возможность получить всестрок в этой таблице всякий раз, когда этот столбец jsonb является массивом И один из объектов имеет свойство 'id', равное 10.
Итак, вот что я пробовал:
select * from users
CROSS JOIN LATERAL jsonb_array_elements(users.info) users_info
WHERE users_info->>'id' = 10
Этоне работает, потому что jsonb_array_elements
взорвется, если значение является объектом, а не массивом.Как мне этого добиться?