Mencari Nama Depan, Nama Tengah, Nama Belakang di SQL Server (Query)


Assalamualaikum semuanya...
Kali ini saya akan share syntax query untuk menemukan Nama Depan, Nama Tengah, dan Nama Belakang pada sebuah field, contoh hasil jadinya bisa kamu lihat pada gambar diatas, dan hal ini akan kita lakungan di lingkungan SQL Server.

Baiklah, pertama kita mulai dengan membuat sebuah table dengan nama TCONTOH dan tabel tersebut hanya memiliki sebuah fild bernama NAMA, syntax nya kurang lebih seperti ini: 
CREATE TABLE TCONTOH(NAMA VARCHAR(35))

Lalu kita isi tablel TCONTOH dengan 3 data sebagai berikut syntaxnya:
INSERT INTO TCONTOH VALUES('ALEX GRAHAM')
INSERT INTO TCONTOH VALUES('BELLA SMITH')
INSERT INTO TCONTOH VALUES('CAMILE VIOLETA WEST')

Pastikan tabel sudah terisi, gunakan syntax berikut ini untuk melihatnya:
SELECT * FROM TCONTOH

Sekarang kita akan masuk kepada pokok pembahasan, untuk menyelesaikan permasalahan ini kita harus tau terlebih dahulu 4 fungsi (LEFT, SUBSTRING, RIGHT, dan LEN). Ke empat fungsi tersebut masing-masing penjelasannya sebagai berikut:
1. LEFT fungsinya untuk mendapatkan sekian (n) karakter pada sebuah field yang diambil dari posisi paling kiri, penulisan syntaxnya : LEFT(NAMA_FIELD, JUMLAH KARAKTER YG INGIN DIAMBIL), Contoh penggunaannya : LEFT(NAMA, 6) hasilnya pada record ke-3 yang akan ditampilkan adalah CAMILE
2. SUBSTRING fungsinya untuk mendapatkan sekian (n) karakter pada sebuah field yang diambil dari posisi tertentu (n) sampai posisi yang lain (kurang lebih sama seperti mid pada excel), penulisan syntaxnya : SUBSTRING(NAMA_FIELD, POSISI KARAKTER DIAMBIL, JUMLAH KARAKTER YG INGIN DIAMBIL). Contoh penggunaannya : SUBSTRING(NAMA,8,7) hasilnya pada record ke-3 yang akan ditampilkan adalah VIOLETA
3. RIGHT fungsinya untuk mendapatkan sekian (n) karakter pada sebuah field yang diambil dari posisi paling kanan, penulisan syntaxnya : RIGHT(NAMA_FIELD, JUMLAH KARAKTER YG INGIN DIAMBIL), Contoh penggunaannya : RIGHT(NAMA, 5) hasilnya pada record ke-3 yang akan ditampilkan adalah WEST
4. LEN fungsinya untuk mendapatkan jumlah karakter yang ada pada sebuah field, penulisan syntaxnya LEN(NAMA_FIELD), Contoh penggunaanya : LEN(NAMA) hasilnya pada record ke-3 yang akan ditampilkan adalah 19

Nah setelah tau 4 syntax diatas maka kita gabungkan ke empat syntax tersebut untuk menyelesaikan permasalahan ini, berikut ini seluruh syntax untuk menampilkan Nama Depan, Nama Tengah, Nama Belakang (outputnya akan sama seperti gambar diatas):
SELECT NAMA, 
SUBSTRING(NAMA,1,CHARINDEX(' ',NAMA)-1) AS 'NAMA DEPAN',
CASE 
WHEN CHARINDEX(' ',SUBSTRING(NAMA,CHARINDEX(' ',NAMA)+1,20)) > 0 THEN
SUBSTRING(SUBSTRING(NAMA,CHARINDEX(' ',NAMA)+1,20), 1, CHARINDEX(' ',SUBSTRING(NAMA,CHARINDEX(' ',NAMA)+1,20))-1)
ELSE NULL
END AS 'NAMA TENGAH',
CASE 
WHEN CHARINDEX(' ',SUBSTRING(NAMA,CHARINDEX(' ',NAMA)+1,20)) > 0 THEN
RIGHT(NAMA, LEN(SUBSTRING(NAMA,CHARINDEX(' ',NAMA)+1,20)) - CHARINDEX(' ',SUBSTRING(NAMA,CHARINDEX(' ',NAMA)+1,20)))
ELSE SUBSTRING(NAMA,CHARINDEX(' ',NAMA)+1,20)
END AS 'NAMA BELAKANG'
FROM TCONTOH

Sekian postingan kali ini, semoga ada manfaatnya.

Post a Comment

Previous Post Next Post