Bagikan melalui


[ ] (Wildcard - karakter yang cocok) (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistem Platform Analitik (PDW)Titik akhir analitik SQL di Microsoft FabricGudang di Microsoft FabricDatabase SQL 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.

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 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 karakter apa pun atau tidak dimulai dengan karakter ketiga. 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 yang lebih 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.

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