[ ](通配符 - 要匹配的字符)(Transact-SQL)
匹配指定范围内或者属于方括号所指定的集合中的任意单个字符。可以在涉及模式匹配的字符串比较(例如,LIKE 和 PATINDEX)中使用这些通配符。有关详细信息,请参阅搜索条件中的模式匹配。
示例
以下示例使用 [] 运算符查找其地址中有四位邮政编码的所有 Adventure Works 雇员的 ID 和姓名。
USE AdventureWorks;
GO
SELECT e.EmployeeID, c.FirstName, c.LastName, a.PostalCode
FROM HumanResources.Employee AS e
INNER JOIN Person.Contact AS c ON e.ContactID = c.ContactID
INNER JOIN HumanResources.EmployeeAddress AS ea ON e.EmployeeID = ea.EmployeeID
INNER JOIN Person.Address AS a ON a.AddressID = ea.AddressID
WHERE a.PostalCode LIKE '[0-9][0-9][0-9][0-9]';
GO
对于你的 SQL
Dname like '%路由器[a]%'
相当于要匹配 Dname like '%路由器a%'
因此, 是无法匹配 路由器[a] 了。
你可以使用转义符号来处理。
例如:
1> create table #temp ( val varchar(20) );
2> go
1> insert into #temp values ('路由器[a]')
2> go
(1 行受影响)
1> SELECT
2> *
3> FROM
4> #Temp
5> WHERE
6> val LIKE '路由器/[a/]' ESCAPE '/'
7> GO
val
--------------------
路由器[a]
(1 行受影响)
select * from Info where Dname like '%路由器[[]a]%'