【问题标题】:SQL Select to Merge Key Field When Row is a Duplicate当行重复时,SQL 选择合并键字段
【发布时间】:2021-10-13 22:12:02
【问题描述】:

我的数据库如下:

ID | First | Surname | DOB
-----------------------------
01 | Homer | Simpson | 12-May
02 | Homer | Simpson | 12-May
03 | Marge | Bouvier | 19-Mar

我希望在数据库上运行 SQL select 查询,以创建通过合并重复行的唯一字段来创建新唯一 ID 的结果?

ID      | First | Surname | DOB
----------------------------------
01 / 02 | Homer | Simpson | 12-May
03      | Marge | Bouvier | 19-Mar

【问题讨论】:

  • 用您正在使用的数据库标记您的问题。
  • 抱歉@GordonLinoff 现已添加。甲骨文数据库。
  • @Tejas 是 sql-server,我的是 oracle-sql,否则是的。

标签: sql select oracle-sqldeveloper


【解决方案1】:

您要求某种字符串聚合函数。这取决于数据库,但想法是:

select listagg(id, ' / ') within group (order by id) as ids,
       first, surname, dob
from t
group by first, surname, dob;

listagg() 函数的名称——以及确切的语法——因数据库而异。

【讨论】:

  • 效果很好,而且非常优雅的解决方案。我以前从未听说过listagg。每天都是上学日!
猜你喜欢
  • 2015-05-24
  • 2019-04-24
  • 1970-01-01
  • 2019-05-01
  • 2019-08-09
  • 1970-01-01
  • 2013-01-12
  • 2014-05-26
  • 2014-09-01
相关资源
最近更新 更多