SAP HANA SQL - 将单个列的多个结果行合并为单个行

Posted

技术标签:

【中文标题】SAP HANA SQL - 将单个列的多个结果行合并为单个行【英文标题】:SAP HANA SQL - Concat multiple result rows for a single column into into a single row 【发布时间】:2019-02-18 03:48:38 【问题描述】:

我正在提取数据,当我拉入文本字段时,当该 ID 有多个结果时,我的“不同 ID”结果有时会重复。有没有办法将结果连接到单个列/行而不是重复它们?其他 SQL 平台中似乎有一些方法,但我一直无法找到适用于 HANA 的方法。

示例 选择 不同的 ID 来自表 1

如果我只提取不同的 ID,我会得到以下信息:

身份证 1 2 3 4

但是,当我提取以下内容时:示例 选择 不同的 ID,文本 来自表 1

我得到了类似的东西

ID 文本 1 条狗 2 猫 2 狗 3 条鱼 4 鸟 4 马

当每个 ID 的行数超过 1 行时,我正在尝试连接文本字段。

我需要的结果是什么(在结果之间有一个“中断”,以便它们在不同的行上会更好,但至少一个“,”会起作用):

ID 文本 1 条狗 2 猫、狗 3 条鱼 4 鸟,马

【问题讨论】:

使用 string_agg 你可以做到这一点并链接显示答案是***.com/questions/26673458/… 【参考方案1】:

我看到 Kiran 刚刚在评论中提到了另一个有效的答案,但在你的例子中这会起作用。

SELECT ID, STRING_AGG(Text, ',')
FROM TABLE1
GROUP BY ID;

您可以将“,”替换为其他字符,也可以将“\n”替换为换行符

我会告诫不要以这种方式连接行,除非您非常了解自己的数据。您将生成的字符串的行数和长度没有有效限制,但 HANA 会对字符串长度有限制,因此请考虑一下。

【讨论】:

非常感谢您的帮助!

以上是关于SAP HANA SQL - 将单个列的多个结果行合并为单个行的主要内容,如果未能解决你的问题,请参考以下文章

sap hana sql中not like 多个条件

如何将 SQL 查询结果行作为具有不同标题名称的列? [关闭]

PL/SQL:, 如何将变量传递给 SELECT 语句并返回所有结果行

如何在全范围内平均减少 SQL 查询的结果行?

如何在 Postgres 函数中检索多个结果行?

如何使用 Entity Framework Core 5.0 将复杂 SQL 查询的结果行映射到自定义 DTO?