Поделиться через


[ ] (подстановочный знак — символы для сопоставления) (Transact-SQL)

Применимо к:SQL ServerБаза данных Azure SQLУправляемый экземпляр Azure SQLAzure Synapse AnalyticsСистема платформы аналитики (PDW)Конечная точка SQL аналитики в Microsoft FabricХранилище в Microsoft FabricБаза данных SQL в Microsoft Fabric

Соответствуют какому-либо одиночному символу в пределах указанного диапазона или набора, заданного в квадратных скобках [ ]. Эти символы-шаблоны могут использоваться в тех операциях сравнения строк, которые задействуют соответствие шаблону, например LIKE или PATINDEX.

Examples

Примеры кода в этой статье используют базу данных образца AdventureWorks2025 или AdventureWorksDW2025, которую можно скачать с домашней страницы образцов и проектов сообщества Microsoft SQL Server и.

A. Базовый пример

В следующем примере возвращаются имена, начинающиеся с буквы m. [n-z] указывает, что вторая буква должна находиться в диапазоне от n до z. Подстановочный знак % процента разрешает любой или нет символов, начиная с третьего символа. Этому условию удовлетворяют базы данных model и msdb. База данных master не соответствует условию и исключается из результирующего набора.

SELECT name FROM sys.databases
WHERE name LIKE 'm[n-z]%';

Вот результирующий набор.

name
-----
model
msdb

Возможно, у вас есть более подходящие базы данных.

B. Более сложный пример

В следующем примере оператор [] используется для поиска идентификаторов и имен всех сотрудников Adventure Works, имеющих адреса с четырехзначным почтовым индексом.

SELECT e.BusinessEntityID, p.FirstName, p.LastName, a.PostalCode
FROM HumanResources.Employee AS e
INNER JOIN Person.Person AS p ON e.BusinessEntityID = p.BusinessEntityID
INNER JOIN Person.BusinessEntityAddress AS ea ON e.BusinessEntityID = ea.BusinessEntityID
INNER JOIN Person.Address AS a ON a.AddressID = ea.AddressID
WHERE a.PostalCode LIKE '[0-9][0-9][0-9][0-9]';

Вот результирующий набор.

EmployeeID      FirstName      LastName      PostalCode
----------      ---------      ---------     ----------
290             Lynn           Tsoflias      3000

C. Используйте набор, объединяющий диапазоны и отдельные символы

Набор подстановочных знаков может содержать как отдельные символы, так и диапазоны. В следующем примере оператор [] используется для поиска строки, которая начинается с цифры или набора специальных символов.

SELECT [object_id], OBJECT_NAME(object_id) AS [object_name], name, column_id
FROM sys.columns
WHERE name LIKE '[0-9!@#$.,;_]%';

Вот результирующий набор.

object_id     object_name                          name    column_id
---------     -----------                         ----  ---------
615673241     vSalesPersonSalesByFiscalYears      2002    5
615673241     vSalesPersonSalesByFiscalYears      2003    6
615673241     vSalesPersonSalesByFiscalYears      2004    7
1591676718    JunkTable                           _xyz  1