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


Sintaks Dasar

CONCAT_WS(separator, string1, string2, [string3, ...])

Keterangan:


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 :