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 - 将单个列的多个结果行合并为单个行的主要内容,如果未能解决你的问题,请参考以下文章
如何将 SQL 查询结果行作为具有不同标题名称的列? [关闭]