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

如何从SQL生成的逗号分隔列表中排除指定值MYVALUE2?

解决SQL拼接逗号分隔列表时排除指定项的问题

根据你的需求,要在生成的逗号分隔列表中排除等于MYVALUE2的项,分两种场景给出修改方案:

场景1:排除拼接后的整个项等于MYVALUE2

如果是最终列表里的完整条目(比如SID0000140 - Serie vom Milchtraum这类格式的内容)等于MYVALUE2时需要排除,直接在WHERE条件里增加对拼接结果的过滤即可:

DECLARE @listStr VARCHAR(MAX)

SELECT 
    @listStr = COALESCE (@listStr + ',', '') + Name + ' - ' + REPLACE(Description, ',', '')
FROM 
    admin.Jobs
WHERE 
    Customer = 'MYVALUE1'
    AND Category = 'SERIEN'
    -- 过滤掉拼接后等于MYVALUE2的项
    AND (Name + ' - ' + REPLACE(Description, ',', '')) <> 'MYVALUE2'
ORDER BY 
    Name

SELECT @listStr

场景2:排除某个字段等于MYVALUE2的记录

如果是Name或Description字段本身等于MYVALUE2时需要排除对应的条目,直接在WHERE里添加对应字段的过滤条件:

排除Name等于MYVALUE2的记录

DECLARE @listStr VARCHAR(MAX)

SELECT 
    @listStr = COALESCE (@listStr + ',', '') + Name + ' - ' + REPLACE(Description, ',', '')
FROM 
    admin.Jobs
WHERE 
    Customer = 'MYVALUE1'
    AND Category = 'SERIEN'
    AND Name <> 'MYVALUE2'
ORDER BY 
    Name

SELECT @listStr

排除Description等于MYVALUE2的记录

DECLARE @listStr VARCHAR(MAX)

SELECT 
    @listStr = COALESCE (@listStr + ',', '') + Name + ' - ' + REPLACE(Description, ',', '')
FROM 
    admin.Jobs
WHERE 
    Customer = 'MYVALUE1'
    AND Category = 'SERIEN'
    AND Description <> 'MYVALUE2'
ORDER BY 
    Name

SELECT @listStr

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 09:37:21