sql – Informix中的group_concat
在Informix的SQL中查找将模拟MySQL的group_concat函数的查询.
MySQL的group_concat所做的是它创建了组中所有成员的枚举. 所以数据如下: orderid:itemName:price 1:Paper :10 1:Pen :5 2:Sugar :15 以及以下查询: select group_concat(itemName),sum(price) from order_details group by orderid 会产生: items :price Paper,Pen:15 Sugar :15 在Informix中实现这一目标的最有效方法是什么?我们肯定要使用存储过程吗? 解决方法您必须定义用户定义的聚合才能执行此操作.这有四个部分 – 四个功能(在 IDS 12.10 Info Centre中搜索 CREATE AGGREGATE):>初始化程序(INIT) 这是首都的官方术语,它具有中等直观性.考虑计算平均值. >初始化程序:设置sum = 0; N = 0 组合器用于组合并行执行的中间结果;每个并行执行都从迭代器开始,并生成中间结果.当并行执行完成时,单独的值集合与组合器组合. 您可以在IDS中编写类似的代码 – 使用存储过程或C或Java UDR. 有关在Informix中实现的基于字符串的GROUP_CONCAT()函数,请参阅SO问题Show a one to many relationship as 2 columns — 1 unique row (ID & comma separated list). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |