_ (Wildcard - Cocok dengan Satu Karakter) (Transact-SQL)
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Gunakan karakter garis bawah _ untuk mencocokkan karakter tunggal 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 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 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: Melarikan diri dari 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 dalam 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[_]%';
Sekarang pengguna dikecualikan dbo
.
Berikut set hasilnya.
name
-------------
db_owner
db_accessadmin
db_securityadmin
...
Lihat Juga
LIKE (Transact-SQL)
PATINDEX (Transact-SQL)
% (Wildcard - Karakter yang Cocok)
[ ] (Wildcard - Karakter yang Cocok)
[^] (Wildcard - Karakter Tidak Cocok)