Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengekstrak Lajur Khusus sebagai JSON Array Objek dalam PostgreSQL?

Bagaimana untuk Mengekstrak Lajur Khusus sebagai JSON Array Objek dalam PostgreSQL?

Linda Hamilton
Lepaskan: 2025-01-14 21:57:43
asal
824 orang telah melayarinya

How to Extract Specific Columns as a JSON Array of Objects in PostgreSQL?

Ekstrak lajur tertentu daripada jadual PostgreSQL sebagai tatasusunan objek JSON

Soalan:

Anda mempunyai jadual dengan berbilang lajur dan ingin mengembalikan tatasusunan objek untuk setiap baris, dengan dua lajur dikumpulkan mengikut lajur lain. Walau bagaimanapun, anda akan menghadapi masalah bahawa hasilnya mengandungi kunci tambahan dalam setiap objek. Output yang dikehendaki ialah tatasusunan objek dengan hanya dua lajur, dikumpulkan mengikut lajur ketiga.

Penyelesaian PostgreSQL 10:

Untuk PostgreSQL 10 dan ke atas, anda boleh menggunakan operator - untuk mengalih keluar satu kunci (atau tatasusunan kunci dalam PostgreSQL 10) daripada objek jsonb sebelum mengagregatkan.

<code class="language-sql">SELECT val2, jsonb_agg(to_jsonb(t.*) - '{id, val2}'::text[]) AS js_34
FROM   tbl t
GROUP  BY val2;</code>
Salin selepas log masuk

Penyelesaian PostgreSQL 9.4:

Dalam PostgreSQL 9.4 dan ke atas, anda boleh menggunakan jsonb_build_object() atau json_build_object() untuk mencipta objek JSON daripada kunci dan nilai berselang-seli.

<code class="language-sql">SELECT val2, jsonb_agg(jsonb_build_object('val3', val3, 'val4', val4)) AS js_34
FROM   tbl
GROUP  BY val2;</code>
Salin selepas log masuk

Penyelesaian PostgreSQL 9.3:

Untuk PostgreSQL 9.3 dan ke atas, anda boleh menggunakan to_jsonb() dan ungkapan ROW untuk mencipta objek JSON. Anda juga boleh menggunakan subquery dan bukannya ungkapan ROW.

<code class="language-sql">SELECT val2, jsonb_agg(to_jsonb((val3, val4))) AS js_34
FROM   tbl
GROUP  BY val2;

SELECT val2, jsonb_agg(to_jsonb((SELECT t FROM (SELECT val3, val4) t))) AS js_34
FROM   tbl
GROUP  BY val2;</code>
Salin selepas log masuk

Penyelesaian di atas akan mengembalikan hasil yang diingini: tatasusunan objek dengan hanya dua lajur, dikumpulkan mengikut lajur ketiga.

Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Lajur Khusus sebagai JSON Array Objek dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan