You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 2017实现重复Email对应Sr#填充至Duplicate#列

解决方案

在SQL Server 2017中,可以利用STRING_AGG函数结合自连接快速实现需求,具体查询语句如下:

SELECT
    t1.[Sr#],
    t1.Email,
    STRING_AGG(CAST(t2.[Sr#] AS VARCHAR(20)), ',') WITHIN GROUP (ORDER BY t2.[Sr#]) AS [Duplicate#]
FROM YourTableName t1
LEFT JOIN YourTableName t2
    ON t1.Email = t2.Email
    AND t1.[Sr#] != t2.[Sr#]
GROUP BY t1.[Sr#], t1.Email;

关键说明:

  • 把YourTableName替换成你的实际数据表名称
  • STRING_AGG会将同一邮箱下的其他Sr#值用逗号分隔拼接成字符串
  • CAST(t2.[Sr#] AS VARCHAR(20))用于将数字类型的Sr#转为字符串,避免拼接时出现类型错误
  • WITHIN GROUP (ORDER BY t2.[Sr#])可让拼接的Sr#按顺序排列,不需要的话可以直接移除

如果需要兼容更早版本的SQL Server,也可以用关联子查询的方式实现:

SELECT 
    [Sr#],
    Email,
    STUFF(
        (
            SELECT ',' + CAST([Sr#] AS VARCHAR(20))
            FROM YourTableName t2
            WHERE t2.Email = t1.Email
              AND t2.[Sr#] != t1.[Sr#]
            FOR XML PATH(''), TYPE
        ).value('.', 'NVARCHAR(MAX)'),
        1, 1, ''
    ) AS [Duplicate#]
FROM YourTableName t1;

内容的提问来源于stack exchange,提问作者zain ul abidin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 06:53:14