[ ] (Wildcard - Karakter yang Cocok) (Transact-SQL)
Berlaku untuk: Titik akhir analitik SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL di Microsoft Fabric Warehouse di Microsoft Fabric
Cocok dengan karakter tunggal apa pun dalam rentang atau set yang ditentukan yang ditentukan di antara tanda kurung [ ]
. Karakter kartubebas ini dapat digunakan dalam perbandingan string yang melibatkan pencocokan pola, seperti LIKE
dan PATINDEX
.
Contoh
A: Contoh sederhana
Contoh berikut mengembalikan nama yang dimulai dengan huruf m
. [n-z]
menentukan bahwa huruf kedua harus berada di suatu tempat dalam rentang dari n
ke z
. Kartubebas %
persen memungkinkan satu atau tidak ada karakter yang dimulai dengan 3 karakter. Database model
dan msdb
memenuhi kriteria ini. Database master
tidak memenuhi kriteria dan dikecualikan dari kumpulan hasil.
SELECT name FROM sys.databases
WHERE name LIKE 'm[n-z]%';
Berikut set hasilnya.
name
-----
model
msdb
Anda mungkin memiliki database tambahan yang memenuhi syarat yang terinstal.
B: Contoh yang lebih kompleks
Contoh berikut menggunakan operator [] untuk menemukan ID dan nama semua karyawan Adventure Works yang memiliki alamat dengan kode pos empat digit.
-- Uses AdventureWorks
SELECT e.BusinessEntityID, p.FirstName, p.LastName, a.PostalCode
FROM HumanResources.Employee AS e
INNER JOIN Person.Person AS p ON e.BusinessEntityID = p.BusinessEntityID
INNER JOIN Person.BusinessEntityAddress AS ea ON e.BusinessEntityID = ea.BusinessEntityID
INNER JOIN Person.Address AS a ON a.AddressID = ea.AddressID
WHERE a.PostalCode LIKE '[0-9][0-9][0-9][0-9]';
Berikut set hasilnya.
EmployeeID FirstName LastName PostalCode
---------- --------- --------- ----------
290 Lynn Tsoflias 3000
C: Menggunakan set yang menggabungkan rentang dan karakter tunggal
Set kartubebas dapat mencakup karakter tunggal dan rentang. Contoh berikut menggunakan operator [] untuk menemukan string yang dimulai dengan angka atau serangkaian karakter khusus.
SELECT [object_id], OBJECT_NAME(object_id) AS [object_name], name, column_id
FROM sys.columns
WHERE name LIKE '[0-9!@#$.,;_]%';
Berikut set hasilnya.
object_id object_name name column_id
--------- ----------- ---- ---------
615673241 vSalesPersonSalesByFiscalYears 2002 5
615673241 vSalesPersonSalesByFiscalYears 2003 6
615673241 vSalesPersonSalesByFiscalYears 2004 7
1591676718 JunkTable _xyz 1
Lihat Juga
LIKE (Transact-SQL)
PATINDEX (Transact-SQL)
% (Wildcard - Karakter yang Cocok) (Transact-SQL)
[^] (Wildcard - Karakter Tidak Cocok) (T-SQL)
_ (Wildcard - Cocok dengan Satu Karakter) (Transact-SQL)