sap HANA中的数组连接

时间:2017-08-30 08:36:43

标签: sap hana

这里我尝试使用如下所示的代码执行Array concat:

--CONCATENATE TWO ARRAYS

CREATEPROCEDURE"keerthi"."ARRAY_COMPLEX_CONCAT3"
(OUT OUTTAB TABLE (SEQ INT,ID INT)) 
LANGUAGE SQLSCRIPT AS BEGIN
DECLARE id1,id2,id3,id4 , id5 INTEGER ARRAY;
id1[1]  := 1;
id1[2]:=2; 
id2[1]  := 1;  
id2[2]:=4;  
id3 := CONCAT(:id1, :id2);  
id4 := :id1 || :id2;  
rst = UNNEST(:id3) WITH ORDINALITY AS ("ID","SEQ");  
id5 := :id4 || ARRAY_AGG(:rst."ID"ORDERBY"SEQ");
outtab = SELECT SEQ,ID FROM :rst ORDERBY "SEQ";
END;

程序成功执行但结果不符合我的预期:

| Seq |  Id |
--------------
|  1  |  1  |
|  2  |  2  |
|  3  |  1  |
|  4  |  4  |

结果我的预期是:

| Seq |  Id |
--------------
|  1  |  1,2 |
|  2  |  1,4 |

1 个答案:

答案 0 :(得分:0)

ARRAY_AGG函数不会“聚合和分组数组单元格值”,因为您的预期结果意味着。

相反,它从表变量中获取一列,并从中生成一个数组。每个单列值都有自己的单元格。结果是一个数组,其条目数与表变量中的行数相同。

如果您不要求Id中的outtab成为ARRAY类型,那么您可以考虑使用STRING_AGG聚合功能。