在Oracle資料庫中,您可能需要將表格中的多行合併成一行,建立一個包含多個欄位的表格結構。假設有一個表,其模式如下:
<code>A 1 A 2 B 1 B 2</code>
要達到以下預期結果:
<code>A 1 2 B 1 2</code>
Oracle 提供了特定的 SQL 函數來滿足此需求:
警告: WM_CONCAT 函數現已棄用,在 Oracle 12c 及更高版本中已移除。在更高版本中使用它可能會導致不可預測的結果。
<code class="language-sql">SELECT field1, WM_CONCAT(field2) FROM YourTable GROUP BY field2;</code>
對於較新的 Oracle 版本,建議使用 LISTAGG 函數:
<code class="language-sql">SELECT field1, LISTAGG(field2, ',') WITHIN GROUP (ORDER BY field2) FROM YourTable GROUP BY field1;</code>
如果您的 Oracle 版本中既沒有 WM_CONCAT 也 沒有 LISTAGG 函數,您可以按照以下步驟實現自訂聚合:
請注意,自訂聚合可能比使用預訂函數更複雜,計算量也更大。
以上是如何在 Oracle SQL 中將多行聚合為單行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!