Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengembalikan Berbilang Lajur dari Baris yang Sama sebagai JSON Array Objek dalam PostgreSQL?

Bagaimana untuk Mengembalikan Berbilang Lajur dari Baris yang Sama sebagai JSON Array Objek dalam PostgreSQL?

Patricia Arquette
Patricia Arquetteasal
2025-01-14 22:01:49544semak imbas

How to Return Multiple Columns from the Same Row as a JSON Array of Objects in PostgreSQL?

Mengembalikan Berbilang Lajur sebagai Susunan Objek JSON dalam PostgreSQL

PostgreSQL menawarkan beberapa pendekatan untuk bertanya dan memformat data sebagai tatasusunan objek JSON, mengumpulkan hasil mengikut lajur tertentu. Berikut ialah pecahan kaedah untuk versi PostgreSQL yang berbeza.

PostgreSQL 10 dan lebih baru

Untuk mengalih keluar kunci tertentu daripada objek JSON teragregat, gunakan operator - sebelum pengagregatan. Penghantaran eksplisit ke text[] diperlukan untuk menyelesaikan kekaburan dengan fungsi terlampau beban:

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

PostgreSQL 9.4 dan lebih baru

Gunakan jsonb_build_object() untuk membina objek JSON daripada pasangan nilai kunci:

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

PostgreSQL 9.3 dan lebih baru

Gunakan to_jsonb() dengan ungkapan ROW atau subquery untuk menjana tatasusunan objek:

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

Sebagai alternatif:

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

Kaedah ini menyediakan cara yang cekap untuk mendapatkan dan menstruktur data, mengumpulkan nilai dan mencipta tatasusunan JSON objek yang mewakili berbilang lajur daripada satu baris.

Atas ialah kandungan terperinci Bagaimana untuk Mengembalikan Berbilang Lajur dari Baris yang Sama sebagai JSON Array Objek dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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