Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengembalikan Berbilang Lajur dari Baris yang Sama sebagai JSON Array Objek 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.
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>
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>
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!