Sdílet prostřednictvím


_ (Zástupný znak – shoda s jedním znakem) (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Znak podtržítka _ použijte ke shodě libovolného znaku v operaci porovnání řetězců, která zahrnuje 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í všechny názvy databází, které začínají písmenem m a mají písmeno d jako třetí písmeno. Znak podtržítka určuje, že druhý znak názvu může být libovolné písmeno. Tato model kritéria splňují tato kritéria a msdb databáze. Databáze master není.

SELECT name FROM sys.databases
WHERE name LIKE 'm_d%';

Tady je soubor výsledků.

name
-----
model
msdb

Možná máte další databáze, které splňují tato kritéria.

K reprezentaci více znaků můžete použít více podtržítka. Změna kritérií tak, LIKE aby obsahovala dvě podtržítka 'm__% , obsahuje master ve výsledku databázi.

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

Následující příklad používá _ operátor k vyhledání všech lidí v Person tabulce, kteří mají tři písmena křestní jméno, které končí an.

SELECT FirstName, LastName
FROM Person.Person
WHERE FirstName LIKE '_an'
ORDER BY FirstName;

C. Řídicí znak podtržítka

Následující příklad vrátí názvy pevných databázových rolí, jako jsou db_owner a db_ddladmin, ale vrátí také uživatele dbo .

SELECT name FROM sys.database_principals
WHERE name LIKE 'db_%';

Podtržítko na pozici třetího znaku se považuje za zástupný znak a nefiltruje se pouze objekty zabezpečení začínající písmeny db_. Chcete-li uvozit podtržítko, uzavřete ho do závorek [_].

SELECT name FROM sys.database_principals
WHERE name LIKE 'db[_]%';

dbo Teď je uživatel vyloučený.

Tady je soubor výsledků.

name
-------------
db_owner
db_accessadmin
db_securityadmin
...