_ (Wildcard - Cocok dengan Satu Karakter) (Transact-SQL)

Berlaku untuk:SQL Server Azure SQL DatabaseAzure SQL Managed Instance

Gunakan karakter garis bawah _ untuk mencocokkan karakter tunggal apa pun dalam operasi perbandingan string yang melibatkan pencocokan pola, seperti LIKE dan PATINDEX.

Contoh

A: Contoh sederhana

Contoh berikut mengembalikan semua nama database yang dimulai dengan huruf m dan memiliki huruf d sebagai huruf ketiga. Karakter garis bawah menentukan bahwa karakter kedua dari nama dapat berupa huruf apa pun. Database model dan msdb memenuhi kriteria ini. Database master tidak.

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

Berikut adalah hasil yang ditetapkan.

name
-----
model
msdb

Anda mungkin memiliki database tambahan yang memenuhi kriteria ini.

Anda dapat menggunakan beberapa garis bawah untuk mewakili beberapa karakter. Mengubah LIKE kriteria untuk menyertakan dua garis bawah 'm__% menyertakan database master dalam hasil.

B: Contoh yang lebih kompleks

Contoh berikut menggunakan operator _ untuk menemukan semua orang dalam Person tabel, yang memiliki nama depan tiga huruf yang berakhiran an.

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

C: Pelepasan karakter garis bawah

Contoh berikut mengembalikan nama peran database tetap seperti db_owner dan db_ddladmin, tetapi juga mengembalikan dbo pengguna.

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

Garis bawah di posisi karakter ketiga diambil sebagai kartubebas db_, dan tidak memfilter hanya untuk prinsipal yang dimulai dengan huruf . Untuk menghindari garis bawah, sertakan dalam tanda kurung siku [_].

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

dbo Sekarang pengguna dikecualikan.

Berikut adalah hasil yang ditetapkan.

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

Lihat juga

LIKE (Transact-SQL)
PATINDEX (Transact-SQL)
% (Karakter wildcard untuk dicocokkan)
[ ] (Karakter wildcard untuk dicocokkan)
[^] (Wildcard - Karakter yang Tidak Cocok)