我有這個 JSON,想過濾WHERE installmentType = 'STANDARD'
在 SELECT 子句中,我想回傳區域屬性。
{
"processedResult": {
"TYPE": "ACKNOWLEDGEMENT",
"orderPayment": {
"paymentDetails": [
{
"installmentPayment": {
"installmentType": "STANDARD"
}
}
]
},
"region": "US"
}
}
期望的輸出:
| 地區 | 型別 |
|---|---|
| 我們 | 致謝 |
到目前為止我已經嘗試過,但這只是讓我感到paymentDetails困惑:
SELECT arr.item_object
FROM aosqe_ema_tools.ocs_response t,
jsonb_array_elements(t.ocsjsonb -> 'processedResult' -> 'orderPayment' -> 'paymentDetails')
with ordinality arr(item_object, position)
Postgres 版本:PostgreSQL 11.13
uj5u.com熱心網友回復:
item_object在WHERE子句中使用:
select
ocsjsonb -> 'processedResult' ->> 'region' as region,
ocsjsonb -> 'processedResult' ->> 'TYPE' as type
from ocs_response
cross join jsonb_array_elements(
ocsjsonb -> 'processedResult' -> 'orderPayment' -> 'paymentDetails')
as arr(item_object)
where item_object -> 'installmentPayment' ->> 'installmentType' = 'STANDARD'
在db<>fiddle中測驗它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/536543.html
上一篇:SQL條件列資料回傳(基于元組)
