HANA concat行

时间:2017-03-14 11:15:43

标签: sql concat hana

我使用SAP-HANA数据库。我有一个简单的2列表,其列是数字,名称,面条,鱼。行是这些:

number name noodles fish
1      tom    x     
1      tom           x
1      jack
2      jack  x

我想通过id对行进行分组,并将名称连接到一个字段中,从而获得:

number  name   noodles   fish

1        tom     x        x
2       jack     x

请告诉我如何在sap-hana中执行此操作?提前谢谢。

1 个答案:

答案 0 :(得分:1)

嗯,你并没有真正连接名称,而是保持相同的名称(如果你也将名称连接起来,你的结果会得到类似jackjack的东西)。我想你的x表示某种ABAP风格的标志。

在任何情况下,您都可以通过分组来完成此操作。这是完全非HANA的事情(您可以对任何数据库使用相同的基本SQL)。您可以针对多个列进行分组。您要选择的所有其他列必须在聚合表达式中使用(例如,SUM,MAX,COUNT等)。

为了从你的问题得到输出,我写了下面的代码:

SELECT "ID", "NAME", MAX("FISH"), MAX("NOODLES") 
    FROM #TEST GROUP BY "ID", "NAME";

并获得与您相同的输出。我使用MAX函数基于以下假设:如果该列中的“连接”(聚合)行中有任何X,则需要获取X.如果所有“连接”行中都有空格,则不会得到空格。