Bagikan melalui


_ (Wildcard - cocok dengan satu karakter) (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceDatabase SQL di Microsoft Fabric

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

Examples

Sampel kode dalam artikel ini menggunakan database sampel AdventureWorks2025 atau AdventureWorksDW2025, yang dapat Anda unduh dari halaman beranda Sampel dan Proyek Komunitas Microsoft SQL Server.

A. Contoh dasar

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 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 set hasilnya.

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 master database dalam hasilnya.

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.

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

C. Lolos dari karakter garis bawah

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

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 [_].

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

Sekarang pengguna dikecualikan dbo .

Berikut set hasilnya.

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