【问题标题】:How to select rows which have same set of values in two columns and hence concatenate the values in the third column?如何选择在两列中具有相同值集的行,从而连接第三列中的值?
【发布时间】:2017-09-09 12:12:28
【问题描述】:

Attached Image

我有附图所示的示例值。 我想要实现的是 PR_NUMBER 字段的值根据 PO_NUMBER 和 PO_ITEM 中的相同值连接起来。

虽然这是一个示例数据,但任何 n 行都可以具有相同的值,因此需要将 PR_NUMBER 列中的所有这些值串联起来。

我了解了 CURSORS 以循环遍历表格,但真的不知道如何处理它们。

预期的输出图像是

123 | 1 | 5678,6789
456 | 1 | 2322,3432
456 | 2 | 4678

【问题讨论】:

  • 您真正使用的是哪个数据库.. ?????
  • 不要在 sql 中使用循环

标签: mysql sql sql-scripts hana-sql-script


【解决方案1】:

如果您使用的是 SAP HANA,那么您可以使用 STRING_AGG(Name, ',')

 SELECT po_number, po_item, STRING_AGG(pr_number, ',')
 from your_table
 group by po_number, po_item;

如果你使用 mysql,你可以使用 group_concat

 SELECT po_number, po_item, group_concat(pr_number, ',')
 from your_table
 group by po_number, po_item;

【讨论】:

  • 谢谢!我已经发现 STRING_AGG 是 GROUP_CONTACT 的替代品。顺便问一下,没有这个功能有什么办法吗?
  • whit sql not ...
【解决方案2】:

您正在寻找group_concat():

select po_number, po_item, group_concat(pr_number)
from t
group by po_number, po_item;

【讨论】:

  • 它说 GROUP_CONCAT 不是受支持的功能。 ://
猜你喜欢
  • 1970-01-01
  • 2018-07-09
  • 2015-07-17
  • 2014-07-14
  • 1970-01-01
  • 1970-01-01
  • 2012-05-25
  • 2022-11-17
  • 2019-08-17
相关资源
最近更新 更多