在Informix的SQL中寻找可模拟MySQLgroup_concat功能的查询。
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信息中心中搜索CREATE AGGREGATE):
这是首都的官方术语,相当直观。考虑计算平均值。
合并器用于合并并行执行的中间结果。每个并行执行都从迭代器开始,并生成中间结果。并行执行完成后,将单独的值集与组合器组合在一起。
您可以使用存储过程或C或Java UDR在IDS中编写类似的代码。