如何在Ingres进行GROUP_CONCAT?

时间:2013-05-28 15:03:52

标签: sql ingres

有没有简单的方法可以在Ingres 9.2中模拟GROUP_CONCAT功能?

我的桌子有类似的东西:

OrderID   LineNumber    LineText
1         1             This is an example note which is trunc
1         2             ated at a certain point.
2         1             Another note which is just one line.

等等。有些笔记是1行,有些是50多行。

我想要一个返回的查询:

OrderID  FullText
1        This is an example note which truncated at a certain point.
2        Another note which is just one line.

在MySQL或SQLite中,我使用GROUP_CONCAT。在MS SQL中,它更难,但我使用FOR XML功能来实现解决方案。我不确定如何在Ingres做到这一点。我开始编写一个存储过程,可以返回单个订单ID的连接注释,但我看不到将其集成到查询中的简单方法。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这可能有效:

select OrderId,
       (max(case when LineNumber = 1 then LineText else '' end) +
        max(case when LineNumber = 2 then LineText else '' end) +
        max(case when LineNumber = 3 then LineText else '' end)
       ) as LineText
from t
group by Orderid;

LineNumber非常方便。