Bagikan melalui


_ (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)