Rabu, 19 November 2025

 

Wildcard adalah karakter khusus yang digunakan dalam SQL Server untuk melakukan pencarian pola dalam teks. Dengan menggunakan wildcard, pengguna dapat menemukan data yang sesuai tanpa harus mencocokkan nilai secara persis. Wildcard sangat berguna dalam pencarian nama, alamat, atau pola teks tertentu dalam basis data.

SQL Server memiliki beberapa wildcard yang dapat digunakan dalam perintah LIKE, dan juga mendukung penggunaan wildcard dalam fungsi PATINDEX(). Artikel ini akan membahas jenis-jenis wildcard di SQL Server, cara menggunakannya, serta contoh penggunaan dari yang sederhana hingga yang kompleks.

Jenis Wildcard

Press enter or click to view image in full size
Tabel 1 Jenis wildchar

Contoh Penggunaan

1. Pencarian nama dengan awalan tertentu

SELECT *
FROM Employees
WHERE Name LIKE 'J%';

Mencari semua nama yang diawali dengan huruf “J”.

2. Pencarian nama dengan pola karakter tertentu

SELECT *
FROM Employees
WHERE Name LIKE '_a%';

Mencari semua nama yang memiliki huruf “a” di posisi kedua.

3. Pencarian dengan rentang karakter

SELECT *
FROM Employees
WHERE Name LIKE '[A-C]%';

Mencari semua nama yang diawali dengan huruf A, B, atau C.

4. Pengecualian dengan rentang karakter

SELECT *
FROM Employees
WHERE Name LIKE '[^A-C]%';

Mencari semua nama yang tidak diawali dengan A, B, atau C.

5. Pencarian kode produk dengan pola khusus

SELECT *
FROM Products WHERE
Code LIKE 'PRD_[0-9][0-9][0-9]';

Mencari kode produk yang diawali dengan “PRD_” diikuti tiga digit angka.

6. Pencarian id pegawai dengan pola huruf dan angka

SELECT *
FROM Employees
WHERE EmployeeID LIKE '[A-Z][0-9][0-9][0-9]';

Mencari semua pegawai yang memiliki ID dengan format huruf kapital diikuti tiga angka.

7. Pencarian email dengan domain tertentu

SELECT *
FROM Users
WHERE Email LIKE '%@gmail.com';

Mencari semua pengguna dengan email domain “@gmail.com”.

8. Pencarian dengan kombinasi wildcard

SELECT *
FROM Customers
WHERE Name LIKE '[J-M]_[aeiou]%[0-9]';

Mencari pelanggan dengan:
▹ Huruf pertama antara J sampai M.
▹ Huruf kedua bisa karakter apa saja.
▹ Huruf ketiga harus vokal (a, e, i, o, u).
▹ Diakhiri dengan angka.

9. Pencarian produk dengan format SKU yang kompleks

SELECT *
FROM Inventory
WHERE SKU LIKE 'PRD-[A-Z][0-9][0-9]-[A-Z]';

Mencari SKU dengan pola:
▹ “PRD-” di awal.
▹ Satu huruf kapital.
▹ Dua angka.
▹ Satu huruf kapital di akhir.

10. Pengecualian dengan pola yang rumit

SELECT *
FROM Orders
WHERE OrderNumber LIKE '[^XYZ][0-9][0-9][^AB]';

Mencari order dengan nomor:
▹ Tidak diawali huruf “X”, “Y”, atau “Z”.
▹ Diikuti dua angka.
▹ Tidak diakhiri huruf “A” atau “B”.

Fungsi PATINDEX()

Sintaks: PATINDEX(pattern, string)

  • PATINDEX() digunakan untuk mencari pola dalam string menggunakan wildcard (%_[ ][^ ]) seperti dalam LIKE.
  • Mengembalikan posisi pertama di mana pola ditemukan dalam string.
  • Jika tidak ditemukan, mengembalikan 0.

Contoh:

1. Menggunakan % (Mewakili 0 atau lebih karakter)

SELECT PATINDEX('%son%', 'Johnson'); -- Hasil: 5

Mencari pola ‘son’ di mana saja dalam teks ‘Johnson’.

2. Menggunakan [ ] (mencari karakter tertentu)

SELECT PATINDEX('%[aeiou]%', 'SQL Server'); -- Hasil: 6
SELECT PATINDEX('%[aeiou]%', 'Microsoft'); -- Hasil: 2

Mencari posisi pertama huruf vokal (a, e, i, o, u) dalam ‘SQL Server’ (huruf ‘e’ di posisi 3) dan dalam ‘Microsoft’ (huruf ‘i’ di posisi 2).

3. Menggunakan [^ ] (menolak karakter tertentu)

SELECT PATINDEX('%[^A-Za-z]%', 'SQL123'); -- Hasil: 4

Mencari posisi karakter pertama yang bukan huruf (angka ‘1’ di posisi 4).

Pengaruh Wildcard terhadap Performa Query

Menggunakan wildcard dalam pencarian teks dapat berdampak pada performa query. Berikut beberapa hal yang perlu diperhatikan.

  1. Hindari penggunaan % di awal pola karena dapat menyebabkan pencarian menjadi lambat.
-- Lebih lambat karena tidak dapat
-- menggunakan indeks dengan baik
SELECT *
FROM Employees
WHERE Name LIKE '%son';

Lebih baik gunakan pola yang memungkinkan pemanfaatan indeks.

-- Lebih cepat karena pencarian
-- menggunakan indeks
SELECT *
FROM Employees
WHERE Name LIKE 'John%';

2. Gunakan indeks pada kolom yang sering dicari dengan wildcard untuk meningkatkan kecepatan pencarian.

3. Pertimbangkan full-text search jika sering melakukan pencarian teks yang kompleks dalam jumlah data besar.

Penutup

Wildcard di SQL Server memberikan fleksibilitas tinggi dalam pencarian data berbasis pola. Dengan memahami berbagai wildcard seperti %_[ ], dan [^ ], pengguna dapat menyusun query pencarian yang lebih kompleks dan efisien. Pengguna dapat mengkombinasikan wildcard dengan operator LIKE atau fungsi PATINDEX().

Tidak ada komentar:

Posting Komentar

Konsep Dasar Splicing dalam Komunikasi Optik

Konsep Dasar Splicing dalam Komunikasi Optik Gambar 428 Diagram Alur Splicing  dalam Komunikasi Optik Berikut penjelasan  Konsep Dasar Splic...