Fungsi CONCAT_WS() Pada MySql
Fungsi CONCAT_WS()
(Concatenate With Separator) pada MySQL adalah perintah yang digunakan untuk
menggabungkan beberapa nilai string (atau tipe data lain yang dikonversi ke string) dengan memisahkannya
menggunakan separator atau pemisah khusus. Berbeda dengan CONCAT()
yang akan menghasilkan
NULL jika salah satu argumennya bernilai NULL, CONCAT_WS()
akan mengabaikan argumen NULL dan tetap membuat keluaran yang valid.
Fungsi dan Kelebihan
- Pemisah Khusus: Fungsi ini memungkinkan Anda menentukan pemisah (separator) yang akan disisipkan di antara nilai-nilai yang digabungkan.
- Nilai NULL diabaikan: Jika salah satu atau beberapa argumen bernilai
NULL
, fungsi ini akan melewatkannya sehingga hasil tidak menjadiNULL
secara keseluruhan. - Mendukung Banyak Argumen: Anda dapat menggabungkan banyak argumen sekaligus sesuai kebutuhan.
Sintaks Dasar
CONCAT_WS(separator, string1, string2, [string3, ...])
Keterangan:
separator
merupakan karakter pemisah yang ingin digunakan (misalnya spasi, tanda hubung, koma, dan lain-lain).string1, string2, ...
adalah argumen yang akan digabungkan.- Jika ada argumen bernilai
NULL
, MySQL akan mengabaikan argumen tersebut dan tetap menambahkan separator untuk argumen lainnya yang tidakNULL
.
Contoh Penggunaan
1. Menggabungkan Kolom dengan Separator Spasi
SELECT
CONCAT_WS(' ', nama_depan, nama_tengah, nama_belakang) AS nama_lengkap
FROM karyawan;
Dalam contoh ini, nama_tengah
yang NULL
tidak akan membuat hasil keseluruhan
menjadi NULL
. MySQL hanya akan menampilkan nama_depan
dan nama_belakang
dengan spasi di antara keduanya.
2. Menggabungkan Nilai dengan Separator Tanda Hubung (-)
SELECT
CONCAT_WS('-', kode_produk, tahun_produksi, batch) AS info_produk
FROM produk;
Misalnya, jika tahun_produksi
bernilai NULL
, maka hasil akan langsung
menjadi
tanpa menampilkan NULL
atau
memengaruhi keseluruhan string.
3. Menggabungkan Data dengan Pemisah Koma
SELECT
CONCAT_WS(',', kategori, sub_kategori, jenis_barang) AS kategori_lengkap
FROM barang;
Di sini, setiap kolom akan dipisahkan dengan koma. Contohnya, jika kategori
= "Elektronik",
sub_kategori
= "Laptop", dan jenis_barang
= "Gaming",
maka hasilnya akan menjadi "Elektronik,Laptop,Gaming".
4. Menggabungkan Data Teks dan Numerik
SELECT
CONCAT_WS(' | ', nama, usia, kota) AS info_pelanggan
FROM pelanggan;
Dalam kasus ini, kolom usia
(yang mungkin bertipe numerik) juga akan dikonversi menjadi string
secara otomatis. Hasil akhir mungkin terlihat seperti "Budi | 25 | Jakarta".
5. Membuat Output Teks Statik dan Dinamis
SELECT
CONCAT_WS(' ', 'Profil:', nama_depan, nama_belakang, '- Umur:', usia) AS informasi
FROM data_diri;
Anda juga dapat menambahkan teks statis di dalam fungsi CONCAT_WS()
untuk menciptakan
kalimat yang lebih bermakna, misalnya: "Profil: Andi Setiawan - Umur: 30".
Perbandingan dengan CONCAT()
Perbedaan utama antara CONCAT_WS()
dan CONCAT()
terletak pada bagaimana
keduanya menangani nilai NULL
. Pada CONCAT()
, jika salah satu argumen
bernilai NULL
, hasilnya akan NULL. Sebaliknya, CONCAT_WS()
hanya mengabaikan argumen NULL
dan tetap menghasilkan output yang valid untuk argumen lain.
Selain itu, CONCAT_WS()
menyediakan kemudahan untuk menambahkan satu separator di antara
seluruh argumen yang digabungkan.
Fungsi CONCAT_WS()
pada MySQL memberikan cara mudah untuk menggabungkan beberapa nilai
string (atau tipe data lain) menjadi satu string dengan tambahan pemisah (separator). Kelebihan utama
dari CONCAT_WS()
adalah kemampuannya dalam mengabaikan nilai NULL
tanpa
memengaruhi keseluruhan hasil, serta menambahkan pemisah yang seragam di setiap argumen. Fungsi ini
sangat berguna untuk menampilkan informasi gabungan dalam satu kolom, seperti nama lengkap, kode produk,
atau informasi deskriptif lain.
Baca Juga :