Merge

一行中的多個表行 Informix

  • December 9, 2016

我有像這個一樣的問題,但是在 Informix 中。我有 2 個屬性 ID 的表,像這樣的電子郵件:

ID  email
1   my_mail1@mail.com
2   my_mail2@mail.com
2   my_mail3@mail.com
2   my_mail4@mail.com
3   my_mail5@mail.com
4   my_mail6@mail.com

我想創建一個返回這個的查詢:

ID   email
1    my_mail1@mail.com
2    my_mail2@mail.com my_mail3@mail.com my_mail4@mail.com
3    my_mail5@mail.com
4    my_mail6@mail.com

Stack Overflow 上有一個答案Show a one to many relationship as 2 columns — 1 個唯一行(ID 和逗號分隔列表),它展示瞭如何在 Informix 中創建使用者定義的聚合,其功能或多或少類似於GROUP_CONCAT在 MySQL 中聚合。

然後,您可以輕鬆地使用它來解決此問題中的問題:

SELECT ID, GROUP_CONCAT(Email)
 FROM Anonymous_Table
GROUP BY ID
ORDER BY ID;

奇怪的是,這個問題和交叉引用的問題都有匿名表——這是 Stack Exchange 系列網站上有關數據庫問題的常見缺陷之一。

引用自:https://dba.stackexchange.com/questions/65101