jsonb_populate_record()
(या json_populate_record()
json
. के लिए ) लक्ष्य के रूप में एक प्रसिद्ध पंक्ति प्रकार के साथ। आप तदर्थ उपयोग के लिए एक प्रकार को पंजीकृत करने के लिए एक अस्थायी तालिका का उपयोग कर सकते हैं (यदि आप मौजूदा का उपयोग नहीं कर सकते हैं तालिका या कस्टम मिश्रित प्रकार):
CREATE TEMP TABLE obj(a int, b int, c int, d int);
फिर:
SELECT t.id, d.*
FROM test t
, jsonb_populate_record(null::obj, t.data) d;
या उपयोग jsonb_to_record()
(या json_to_record()
json
. के लिए ) और कॉल के साथ एक कॉलम परिभाषा सूची प्रदान करें:
SELECT t.id, d.*
FROM test t
, jsonb_to_record(t.data) d(a int, b int, c int, d int);
या निकालें और कास्ट करें प्रत्येक फ़ील्ड व्यक्तिगत रूप से:
SELECT id, (data->>'a')::int AS a, (data->>'b')::int AS b
, (data->>'c')::int AS c, (data->>'d')::int AS d
FROM test;
तीनों json
के लिए काम करते हैं और jsonb
एक जैसे। बस संबंधित फ़ंक्शन प्रकार का उपयोग करें।
संबंधित: