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

SQL Server中如何获取逗号分隔列的去重值列表

SQL Server 字符串列按行去重实现方案

你使用的SQL Server 15.0.x(SQL Server 2019)版本原生支持字符串拆分和聚合函数,可通过拆分→去重→重新拼接的逻辑实现需求,完整代码如下:

-- 请将下方的 animal_table 替换为你实际的表名
SELECT 
    STRING_AGG(animal_name, ',') WITHIN GROUP (ORDER BY (SELECT 1)) AS column1
FROM 
    animal_table t
CROSS APPLY (
    -- 拆分字符串后去重,可添加WHERE value <> ''过滤空值
    SELECT DISTINCT value AS animal_name 
    FROM STRING_SPLIT(t.column1, ',')
) AS distinct_animals
-- 如果表有主键/唯一标识列,建议按主键分组,避免内容相同的行被合并,示例:GROUP BY t.id, t.column1
GROUP BY t.column1

逻辑说明

  • STRING_SPLIT(t.column1, ','):将每行column1的逗号分隔字符串,拆分为单动物名称的独立行
  • SELECT DISTINCT:对拆分后的动物名称执行行级去重
  • STRING_AGG(animal_name, ','):将去重后的单个动物名称重新拼接为逗号分隔的字符串,ORDER BY (SELECT 1)参数保持动物原出现顺序,如需按字典序排序可修改为ORDER BY animal_name

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 04:36:04