带方括号的 SQL Server LIKE 直接工作但不使用变量

问题描述

我使用方括号来表示通配符的范围。 奇怪的是,直接在语句中使用表达式可以正常工作,获取预期的行。但是使用来自变量的相同表达式不会带来任何结果。 为什么它不能从变量工作?

作品:

SELECT * FROM dbo.Table WHERE Column LIKE '%B[A-Z][A-Z]%';
Results: BAA,BAB,BAC,... until BZZ

行不通:

DECLARE @var VARCHAR(10)
SET @var = N'B[A-Z][A-Z]'
SELECT * FROM dbo.Table WHERE Column LIKE CONCAT('%',@var,'%');

我也尝试与 + 连接但仍然得到零结果(LIKE '%' + @var + '%')

当我在变量中只使用一个范围时,同样的表达式有效,但我确实需要使用两个范围

SET @var = N'B[A-Z]'
SELECT * FROM dbo.Table WHERE Column LIKE '%' + @var + '%';
Results: BA,BB,BC,BD,....

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)