数据库T-SQL语句中[]的内容是什么意思?

2025-03-13 13:05:34
推荐回答(2个)
回答1:

[ ](通配符 - 要匹配的字符)(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 行受影响)

回答2:

select * from Info where Dname like '%路由器[[]a]%'