PostgreSQL 提供了多種方法來查詢資料並將其格式化為 JSON 物件數組,並按特定列對結果進行分組。 以下是不同 PostgreSQL 版本的方法區隔。
要從聚合的 JSON 物件中刪除特定鍵,請在聚合之前使用 -
運算子。 為了解決重載函數的歧義,需要明確轉換為 text[]
:
<code class="language-sql">SELECT val2, jsonb_agg(to_jsonb(t.*) - '{id, val2}'::text[]) AS js_34 FROM tbl GROUP BY val2;</code>
利用 jsonb_build_object()
從鍵值對建構 JSON 物件:
<code class="language-sql">SELECT val2, jsonb_agg(jsonb_build_object('val3', val3, 'val4', val4)) AS js_34 FROM tbl GROUP BY val2;</code>
使用 to_jsonb()
與 ROW 表達式或子查詢來產生物件陣列:
<code class="language-sql">SELECT val2, jsonb_agg(to_jsonb((val3, val4))) AS js_34 FROM tbl GROUP BY val2;</code>
或:
<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>
這些方法提供了檢索和建構資料、對值進行分組以及建立表示單行中多列的物件 JSON 陣列的有效方法。
以上是如何從同一行傳回多個欄位作為 PostgreSQL 中的 JSON 物件陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!