SQL Server: Mencari Nomor Urut Posisi Karakter dengan CHARINDEX()

Jika kita mencari bagaimana caranya mencari posisi karakter atau substring (bagian/potongan teks string) maka dapat menggunakan fungsi CHARINDEX(). Fungsi ini mengembalikan nilai integer dan jika  substring tidak ditemukan, maka akan mengembalikan nilai 0.

Sintaks:

CHARINDEX(substring, string, start)

Contoh:

SELECT CHARINDEX('g', 'Pangandaran', 1) AS PositionNumber;

SELECT CHARINDEX('k''Pangandaran', 1) AS PositionNumber;

Result:



Parameter start adalah opsional yang jika tidak diisi maka secara default pencarian akan dimulai dari awal string.

Contoh:

SELECT CHARINDEX('d', 'Pangandaran') AS PositionNumber;

SELECT CHARINDEX('d', 'Pangandaran', 1) AS PositionNumber;

Result:

Lebih jauh penggunaan start adalah untuk menentukan titik awal dimulainya pencarian. Seperti kita lihat pada teks "Pangandaran" terdapat beberapa huruf "a". Jika kita mencari posisi huruf "a" maka nilai yang dikembalikan oleh fungsi CHARINDEX() adalah posisi huruf "a" yang pertama ditemukan. Kecuali jika kita menentukan posisi start (awal) dimana harus mulai mencari.

Contoh:

SELECT CHARINDEX('a''Pangandaran', 1) AS PositionNumber;

SELECT CHARINDEX('a''Pangandaran', 3) AS PositionNumber;

SELECT CHARINDEX('a''Pangandaran', 6) AS PositionNumber;

Result:


Dalam penggunaannya fungsi ini melakukan pencarian tidak case sensitive. Huruf besar/kecil akan dianggap sama saja.

SELECT CHARINDEX('R''Pangandaran', 1) AS PositionNumber;

SELECT CHARINDEX('r''Pangandaran', 1) AS PositionNumber;


CHARINDEX() tidak hanya untuk menemukan posisi 1 karakter saja, tapi bisa digunakan untuk potongan kata atau substring.

SELECT CHARINDEX('dar''Pangandaran', 1) AS PositionNumber;

SELECT CHARINDEX('an''Pangandaran', 1) AS PositionNumber;

SELECT CHARINDEX('an''Pangandaran', 3) AS PositionNumber;



Post a Comment

0 Comments