PostgreSQL - как выполнить select из json массива с условием по элементу массива?
Есть таблица с типом колонки jsonb.
{
"key1":
[
{"file": "U2323.DAT", "tt_date": "2023-12-03 22:22:12"},
{"file": "V000.DAT", "tt_date": "2025-12-03 22:22:12"}
]
}
Есть запрос на получение всех данных по определенным элементам.
select
jsonb_array_elements(status->'key1')->>'file' as file,
jsonb_array_elements(status->'key1')->>'tt_date' as tt_date
from status;
Как добавить условие для получения элементов file
у которых значение начинается с 'U2' ?
Не понятно как в условии обращаться к конкретному элементу массива и задать условиe.
Ответы (1 шт):
Автор решения: Мелкий
→ Ссылка
Вызвать set-returning function как явный join вместо неявного использования в select
select
j->>'file' as file,
j->>'tt_date' as tt_date
from status
cross join jsonb_array_elements(status->'key1') as j
where j->>'file' like 'U2%';