如何创建查询以将重复 ID 的两行或三行组合起来

珍妮特兰

我正在尝试创建一个 select 语句来组合来自任何特定列上重复 ID 的值。

我的表是:

ID   Name
---------
01   A
01   B
02   C
03   D

我怎样才能选择获取像这样的值:01 A, B for ID: 01. 目前,当我使用 Select * from Tablename 时,它​​列出了两行的 01 ID。我喜欢只将它组合成一行,对于任何重复的行,名称应该与逗号组合。

新代码:

select Name, ID = REPLACE
  ((select Surname AS [data()]
        FROM Mytable
        WHERE Name = d. Name
        ORDER BY Name FOR XML path('')), ' ', REQUIRED SEPERATOR)
FROM Mytable d
WHERE Name IS NOT NULL
GROUP BY Name

非常感谢你!

shibormot

SQL小提琴

MS SQL Server 2014 架构设置

create table t (id int not null, name nvarchar(max) not null)
insert t (id, name) values 
  (1, 'A'), 
  (1, 'B'),
  (1, 'C'), 
  (2, 'A'),
  (2, 'D'), 
  (3, 'A'),
  (3, 'F'), 
  (3, 'E')

查询 1

    select id, REPLACE
      ((select name AS [data()]
            FROM t as t1
            WHERE t1.id = t0.id
            ORDER BY Name FOR XML path('')), ' ', ',')
    FROM t as t0
    GROUP BY id

结果

| id |       |
|----|-------|
|  1 | A,B,C |
|  2 |   A,D |
|  3 | A,E,F |

更新为了处理名称中已有的空格,我们可以在分组之前将它们替换为下划线,并在分组之前替换回:

  select id, replace(REPLACE
  ((select replace(name, ' ', '_') AS [data()]
        FROM t as t1
        WHERE t1.id = t0.id
        ORDER BY Name FOR XML path('')), ' ', ','), '_', ' ')
FROM t as t0
GROUP BY id

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫-将行日期和列时间结合起来

如何在UPDATE查询MYSQL中合并具有相同ID的两行

使用bash,sed或awk将三行或更多行改为两行

使用bash,sed或awk将三行或更多行改为两行

如何从SQL中的两行获取maximuim ID

将DMax与Dlookup结合起来,从创建的最后一行中寻找价值

在本机DOM中,是否有一种方法可以将两个节点组合起来以形成用于查询目的的范围?

如何将href和ID号结合起来

如何在vimdiff中合并来自一个修订版本的两行和来自另一修订版本的第三行?

对每个ID重复前两行两次

我如何取出每个科目ID的前两行

SQL Server-查询。如何将一列分为2个,行ID重复?

将两个 MySQL 查询与计算结合起来

如何将来自两个不同数据集的行与日期时间差异条件结合起来

将大连接查询与重复查询结合起来

如何在excel中每三行删除两行?

如何将数据帧与熊猫中的冗余行结合起来

如何将这两个 Less @Media 查询与“或”条件结合起来?

将两个python mysql查询与一个条件结合起来

在多维数组中查找重复值,并使用 PHP 将它们的 ID 以逗号分隔并相应地组合起来

将两个都包含字符的 2D 数组与 java 组合起来

为什么我使用 LineRenderer 只得到两行而不是三行来创建三角形?

如何使用QueryDsl在查询中按id删除重复行

如何有效地将所有子数组与相关 id 组合起来并删除所有重复对象

将行与 MySQL 查询结合起来

如何使用 ES6 函数将每个对象中具有公共 id 的对象数组组合起来

R数据表如何将行与错误检查结合起来

将字典列表中的重复值与某个键组合起来

如何将表的行与sql结合起来?