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

T-SQL中使用LIKE运算符匹配多值列与单值列的问题咨询

T-SQL 分号分隔多值列与单值列匹配解决方案

直接使用LIKE结合通配符%匹配会出现边界错误,例如列B值为a时,列A中的ab、ca等内容会被误判为匹配,可根据SQL Server版本选择以下方案:

方案1:SQL Server 2016及以上版本(推荐)

使用内置STRING_SPLIT函数拆分多值列后精准匹配:

SELECT *
FROM 你的表名
WHERE EXISTS (
    SELECT 1
    -- 先移除列A的方括号,再按分号拆分内容
    FROM STRING_SPLIT(REPLACE(REPLACE(列A, '[', ''), ']', ''), ';')
    -- 移除列B的方括号后和拆分后的值做精准等值匹配
    WHERE value = REPLACE(REPLACE(列B, '[', ''), ']', '')
)

该方案性能优秀,匹配逻辑严谨,适合中大数据量场景。

方案2:SQL Server 2016以下版本兼容方案

通过统一补充分隔符实现精准LIKE匹配,避免部分匹配问题:

SELECT *
FROM 你的表名
WHERE 
-- 给列A移除方括号后前后都补充分号,统一内容的分隔符边界
';' + REPLACE(REPLACE(列A, '[', ''), ']', '') + ';' 
-- 列B移除方括号后也包裹成分号+值+分号的格式进行模糊匹配
LIKE '%;' + REPLACE(REPLACE(列B, '[', ''), ']', '') + ';%'

该方案写法简洁,兼容低版本SQL Server,适合小数据量场景。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:09:02