Sdílet prostřednictvím


[ ] (Zástupný znak – znaky, které se mají shodovat) (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Koncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Odpovídá libovolnému jednomu znaku v zadaném rozsahu nebo sadě zadané mezi hranatými závorkami [ ]. Tyto zástupné znaky lze použít v porovnání řetězců, které zahrnují porovnávání vzorů, například LIKE a PATINDEX.

Examples

Ukázky kódu v tomto článku používají ukázkovou databázi AdventureWorks2025 nebo AdventureWorksDW2025, kterou si můžete stáhnout z domovské stránky Microsoft SQL Serveru pro ukázky a komunitní projekty .

A. Základní příklad

Následující příklad vrátí názvy začínající písmenem m. [n-z] určuje, že druhé písmeno musí být někde v rozsahu od n do z. Zástupný znak % procenta umožňuje libovolný nebo žádný znak začínající třetím znakem. Tato model kritéria splňují tato kritéria a msdb databáze. Databáze master nesplňuje kritéria a je vyloučena ze sady výsledků.

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

Tady je soubor výsledků.

name
-----
model
msdb

Je možné, že máte nainstalované opravňující databáze.

B. Složitější příklad

Následující příklad používá operátor [] k vyhledání ID a názvů všech zaměstnanců společnosti Adventure Works, kteří mají adresy se čtyřmístným PSČ.

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]';

Tady je soubor výsledků.

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

C. Použití sady, která kombinuje rozsahy a jednotlivé znaky

Sada zástupných znaků může obsahovat jednotlivé znaky i oblasti. Následující příklad používá operátor [] k vyhledání řetězce, který začíná číslem nebo řadou speciálních znaků.

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

Tady je soubor výsledků.

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