首页 >数据库 >mysql教程 >如何在 Informix 中将一对多关系连接到唯一列中?

如何在 Informix 中将一对多关系连接到唯一列中?

Patricia Arquette
Patricia Arquette原创
2025-01-01 11:22:10669浏览

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