Yeni bir konsept olduğu için online olarak bulmak için postgres ve jsonb ile oynamaya yeni başladım. Anahtarları ve değerleri içeren bir tabloyu yazdırmak için jsonb_each_text kullanmaya çalışıyorum ama bir csv aldım tek bir sütunda.PostgreSQL - jsonb_each
Aşağıdaki json'u jsonb olarak kaydediyorum ve sorgularımı test etmek için kullanıyorum.
{
"lookup_id": "730fca0c-2984-4d5c-8fab-2a9aa2144534",
"service_type": "XXX",
"metadata": "sampledata2",
"matrix": [
{
"payment_selection": "type",
"offer_currencies": [
{
"currency_code": "EUR",
"value": 1220.42
}
]
}
]
}
ben "{" değeri Euro ": 1.220,42, "CURRENCY_CODE" ""}" bir sonucu verir
SELECT element -> 'offer_currencies' -> 0
FROM test t, jsonb_array_elements(t.json -> 'matrix') AS element
WHERE element ->> 'payment_selection' = 'type'
ile offer_currencies diziye erişebilir i çalıştırmak eğer öyleyse, Ben olsun sorgu altına Yani bu sorguyu oluşturulan yukarıdaki teorisini kullanarak
select * from jsonb_each_text('{"value": 1220.42, "currency_code": "EUR"}')
Key | Value
---------------|----------
"value" | "1220.42"
"currency_code"| "EUR"
(I "' için değiştirmek zorunda)
SELECT jsonb_each_text(data)
FROM (SELECT element -> 'offer_currencies' -> 0 AS data
FROM test t, jsonb_array_elements(t.json -> 'matrix') AS element
WHERE element ->> 'payment_selection' = 'type') AS dummy;
Ama bu sütunda
record
---------------------
"(value,1220.42)"
"(currency_code,EUR)"
Bu gibi deyimler öğrenmek için herhangi bir kaynak önerebilir misiniz ("Genellikle hatalara yol açabilen, set-dönen işlevleri SEÇME")? – Jay