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

SQL Server中合并varchar与int列并去重聚合的技术求助

解决方案

针对SQL Server 2017及以上版本(支持STRING_AGG函数)

先通过子查询生成去重的拼接字符串,再用STRING_AGG聚合为逗号分隔的结果:

SELECT STRING_AGG(combined_col, ', ') AS final_combined_result
FROM (
    -- 先拼接列并去重
    SELECT DISTINCT 
           CONCAT(learningareacode, ':', CAST(NormalYearLevel AS VARCHAR(10))) AS combined_col
    FROM your_table -- 替换成你的实际表名
) AS distinct_data

针对SQL Server 2016及更早版本(无STRING_AGG)

使用STUFF+FOR XML PATH的组合实现字符串聚合,同时通过DISTINCT去重:

SELECT STUFF(
    (
        SELECT DISTINCT ', ' + CONCAT(learningareacode, ':', CAST(NormalYearLevel AS VARCHAR(10)))
        FROM your_table -- 替换成你的实际表名
        FOR XML PATH(''), TYPE
    ).value('.', 'NVARCHAR(MAX)'),
    1, 2, '' -- 去掉开头多余的", "
) AS final_combined_result

注意事项

  • 转换NormalYearLevel为字符串时,指定合适的长度(比如VARCHAR(10)),避免数值过大导致截断。
  • 如果列存在NULL值,可使用ISNULL处理,比如CONCAT(ISNULL(learningareacode, ''), ':', ISNULL(CAST(NormalYearLevel AS VARCHAR(10)), '')),防止拼接结果为NULL。

内容的提问来源于stack exchange,提问作者sai royal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:42:03