SQL JSON помогите пожалуйста
Всем привет, у меня есть таблица в которой есть колонка формата JSON, в ней следующий формат
Таблица название - Payment Колонка где лежит JSON - Data
{
"locationId": "111",
"operatorId": 1111,
"enteredDate": "2022-03-19T14:02:57.767-05:00",
"settlements": [
{
"type": "Credit Card",
"amount": 0.01,
"reference": " "
},
{
"type": "Credit Card",
"amount": 1284.87,
"reference": "MasterCard 1256"
}
],
"Route": 23
}
Нужно сделать запрос чтобы из этой колонки в которой данные в формате JSON выбрать только те записи где есть setlement
запись с "amount": 0.01
потому что такой записи может и не быть
Ответы (1 шт):
Автор решения: RSK
→ Ссылка
Под рукой нет PostgreSQL, но должно быть примерно так
SELECT *
FROM Payment
WHERE EXISTS (
SELECT 1
FROM jsonb_array_elements(Data -> 'settlements') AS settlement
WHERE (settlement ->> 'amount')::numeric = 0.01
);