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

在SSRS报表中合并SQL多行IP地址至单行字段的技术问询

合并同一主机的多个IP地址为单行字段的SQL实现

针对SCCM环境下的SQL查询,根据你使用的SQL Server版本,有两种常用方法将同一主机的多个IP合并为单行字段:

方法1:使用STRING_AGG(SQL Server 2017及以上版本)

这是最简洁的实现方式,直接调用内置聚合函数完成字符串拼接:

SELECT 
    computer,
    STRING_AGG(IP, ', ') AS IP_Addresses
FROM YourTable  -- 替换为实际表名
GROUP BY computer
  • 第二个参数', '是IP地址之间的分隔符,可按需修改(比如'; '或换行符CHAR(13)+CHAR(10))
  • 如果IP字段存在NULL值,可改为STRING_AGG(ISNULL(IP, ''), ', ')避免拼接结果出现NULL

方法2:使用FOR XML PATH(兼容SQL Server 2016及更早版本)

若你的SQL Server版本不支持STRING_AGG,可采用这种兼容方案:

SELECT 
    DISTINCT computer,
    STUFF(
        (SELECT ', ' + IP 
         FROM YourTable t2 
         WHERE t2.computer = t1.computer 
         FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'),
        1, 2, ''
    ) AS IP_Addresses
FROM YourTable t1
  • FOR XML PATH('')将子查询返回的多个IP拼接成连续字符串
  • STUFF函数用于移除字符串开头多余的分隔符(此处为前2个字符', ')
  • 同样可通过ISNULL(IP, '')处理NULL值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 15:30:43