SQL Server: Menemukan Posisi Pola String pada Teks

Judul artikel kali ini mungkin agak sedikit membingungkan tetapi intinya adalah bagaimana cara menemukan posisi potongan teks pada satu teks string utuh. Contohnya mencari posisi teks 'bo' pada kata rainbow.

Kita dapat menggunakan fungsi PATINDEX(), sintaks:

PATINDEX(%pattern%, string)

pattern adalah pola atau bagian teks yang ingin dicari posisinya.
string adalah teks utuh sebagai sumber yang akan dicari bagian teksnya.
% adalah salah satu karakter yang digunakan sebagai wildcard.

Jadi untuk contoh kasus raibow diatas dapat dituliskan sebagai berikut:

SELECT PATINDEX('%bow%', 'rainbow');



Wildcard yang umum digunakan adalah %, tapi kita juga bisa menggunakan wildcard lainnya seperti:
% - mencocokan string apa pun dengan panjang berapa pun (termasuk yang panjangnya 0)
_ - mencocokan satu karakter tunggal
[]- mencocokan karakter apa pun dalam tanda kurung, misal [xyz]
[^] - mencocokan karakter apa pun yang tidak ada dalam tanda kurung, misal [^xyz]

Rani pernah membahas lebih detail tentang wildcard ini di artikel mengenai operator LIKE.

Jika pattern atau bagian teks yang menjadi parameter pencarian tidak ditemukan maka hasil index nya adalah 0.

SELECT PATINDEX('%z%', 'rainbow');




Post a Comment

0 Comments