首頁 >資料庫 >mysql教程 >如何在 Informix 中將一對多關係連接到唯一列?

如何在 Informix 中將一對多關係連接到唯一列?

Patricia Arquette
Patricia Arquette原創
2025-01-01 11:22:10681瀏覽

How to Concatenate One-to-Many Relationships into Unique Columns in Informix?

在Informix 中將一對多關係連接為唯一欄位

將一對多關係轉換為兩個唯一欄位需要特定的資料庫函數和語法。本問題探討如何使用 Informix SQL 實作此轉換,類似於引用的 StackOverflow 問題中所述的方法。

使用者定義的聚合函數

建議的解決方案涉及建立名為 group_concat 的使用者定義聚合函數。函數使用四個子函數:

  • gc_init:初始化空字串。
  • gc_iter:迭代地將值附加到字串,以逗號分隔。
  • gc_comb :合併不同結果產生的部分結果
  • gc_fini:傳回最終的串聯字串。

串聯查詢

要串聯每個唯一 ID的程式碼,請執行下列查詢:

SELECT id, group_concat(codes)
FROM anonymous_table
GROUP BY id;

範例表和結果

範例表anonymous_table包含多個ID的重複程式碼。查詢的輸出產生所需的結果:

id    codes
63592 PELL
58640 SUBL, USBL
73571 PELL, USBL, SUBL

註解

  • group_concat 聚合可以處理任何可轉換為VARCHAR(255) 的資料類型,例如數字和時間類型。
  • 聚合大小預設限制為 2048 位元組(在 Informix 12.10.FC5 中最多 16380 位元組),對大量資料造成潛在限制。
  • 要刪除聚合函數,請使用提供的 drop 指令。

以上是如何在 Informix 中將一對多關係連接到唯一列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn