Megosztás a következőn keresztül:


_ (Helyettesítő karakter – egy karakter egyezése) (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Az aláhúzásjel karakterrel _ egyezhet a sztringek összehasonlítási műveletének bármely olyan karakterével, amely mintaegyezést tartalmaz, például LIKE és PATINDEX.

Examples

A cikkben szereplő kódminták a AdventureWorks2025 vagy AdventureWorksDW2025 mintaadatbázist használják, amelyet a Microsoft SQL Server-minták és közösségi projektek kezdőlapjáról tölthet le.

A. Egyszerű példa

Az alábbi példa az összes olyan adatbázisnevet adja vissza, amely a betűvel m kezdődik, és a betű d a harmadik betű. Az aláhúzásjel azt határozza meg, hogy a név második karaktere bármilyen betű lehet. Az model és msdb az adatbázisok megfelelnek ennek a feltételnek. Az master adatbázis nem.

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

Itt van az eredmények összessége.

name
-----
model
msdb

Előfordulhat, hogy további adatbázisokkal rendelkezik, amelyek megfelelnek ennek a feltételnek.

Több aláhúzásjel használatával több karaktert is jelölhet. Ha a LIKE feltételt két aláhúzásra módosítja 'm__% , az az adatbázist master is tartalmazza az eredményben.

B. Összetettebb példa

Az alábbi példa az operátort használja a _ tábla összes olyan személyének Person megkeresésére, akik hárombetűs utónévvel anrendelkeznek.

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

C. Az aláhúzásjel feloldása

Az alábbi példa a rögzített adatbázis-szerepkörök( például db_owner és db_ddladmin) nevét adja vissza, de a dbo-felhasználót is visszaadja.

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

A harmadik karakterpozíció aláhúzása helyettesítő karakternek minősül, és nem csak a betűkkel db_kezdődő egyszerű karakterekre szűr. Az aláhúzás kivédéséhez szögletes zárójelbe [_]kell tenni.

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

Most a dbo felhasználó ki van zárva.

Itt van az eredmények összessége.

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