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

SQL Server 2019含方括号列数据查询异常及解决方法

解决LIKE匹配含方括号路径时的记录丢失问题

我有两张表,每张表都包含文件夹路径列,这些列可能包含方括号(例如Folder1\Folder2\Folder3[Old]\)。用table1.path = table2.path能正常匹配所有对应记录,但用LIKE运算符查询一张表中包含另一张表部分路径的记录时,含方括号的记录会被忽略,执行的SQL如下:

select a.*
from table1 a
cross join table2 b
where a.path like '%' + b.path + '%'

请问是否需要添加转义语法?


解决方法

是的,必须添加转义语法。因为SQL的LIKE运算符中,方括号[]属于特殊通配符(用于匹配指定范围内的单个字符),直接使用会被解析为匹配规则而非普通文本,导致含方括号的路径无法被正确识别匹配。

可以通过转义处理方括号来解决,最终可用的SQL如下:

select a.*
from table1 a
cross join table2 b
where a.path like '%' + replace(replace(b.path, '[', '#['), ']', '#]') +  '%' escape '#'

这段代码的核心逻辑:

  • 用嵌套的replace函数,将路径中的[替换为#[,]替换为#]
  • 通过escape '#'声明#为转义字符,让LIKE将#[和#]解析为普通的方括号文本,而非通配符规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 10:47:40