Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Menggunakan Coalesce di MySQL

Coalesce adalah fungsi MySQL yang berguna yang secara otomatis mengembalikan nilai non-null pertama dari daftar nilai. Nilai-nilai ini dapat diberikan menggunakan literal, nama kolom, atau fungsi MySQL lainnya. Pada artikel ini, kita akan melihat cara menggunakan Coalesce di MySQL.


Cara Menggunakan Coalesce di MySQL

Berikut langkah-langkah menggunakan COALSCE di MySQL


Apa itu COALESCE di MySQL

Fungsi COALESCE mengembalikan nilai non NULL pertama dari daftar nilai. Jika semua nilai dalam daftar adalah NULL, maka ia mengembalikan NULL. Berikut adalah sintaks fungsi Coalesce di MySQL.

select coalesce(value1, value2, ..., valuen) 
from table_name;

Dalam pernyataan di atas, Anda perlu menentukan nama tabel, dan memberikan daftar nilai yang dipisahkan koma.

Berikut adalah beberapa contoh sederhana untuk menunjukkan fungsionalitas COALESCE.

mysql> select coalesce(NULL, 2, 3);
+----------------------+
| coalesce(NULL, 2, 3) |
+----------------------+
|                    2 |
+----------------------+

mysql> select coalesce(NULL, NULL);
+----------------------+
| coalesce(NULL, NULL) |
+----------------------+
|                 NULL |
+----------------------+


Mengapa COALESCE digunakan di MySQL

COALESCE digunakan di MySQL untuk mengganti nilai null dengan beberapa string lain pilihan Anda. Ini sangat berguna untuk pelaporan dan analitik di mana Anda tidak ingin mengubah data sebenarnya tetapi perlu melaporkannya dengan cara yang berbeda.

Katakanlah Anda memiliki tabel berikut penjualan(id, produk, tanggal_pesanan, jumlah) yang berisi nilai nol.

mysql> create table sales(id int, 
        product varchar(5),
        order_date date, 
        amount int);

mysql> insert into sales(id, product, order_date, amount)
       values(null, 'A','2020-01-01',150),
       (2, null,'2020-01-01',150),
       (null, 'C',null,150),
       (4, 'D','2020-01-01',null);

mysql> select * from sales;
+------+---------+------------+--------+
| id   | product | order_date | amount |
+------+---------+------------+--------+
| NULL | A       | 2020-01-01 |    150 |
|    2 | NULL    | 2020-01-01 |    150 |
| NULL | C       | NULL       |    150 |
|    4 | D       | 2020-01-01 |   NULL |
+------+---------+------------+--------+

Sekarang kita akan menggunakan COALESCE untuk mendapatkan nilai non-null pertama dari setiap baris.

mysql> select coalesce(id, product, order_date, amount) from sales;
+-------------------------------------------+
| coalesce(id, product, order_date, amount) |
+-------------------------------------------+
| A                                         |
| 2                                         |
| C                                         |
| 4                                         |
+-------------------------------------------+

Seperti yang Anda lihat, COALESCE mengembalikan nilai bukan nol dari setiap baris.

Anda juga dapat menggunakan fungsi COALESCE untuk mengganti nilai null dengan string khusus. Pada contoh berikut, kita akan mengganti setiap nilai null dengan string 'NA' menggunakan COALESCE.

mysql> select coalesce(id, 'NA') id, 
       coalesce(product,'NA') product, 
       coalesce(order_date,'NA') order_date, 
       coalesce(amount,'NA') amount 
       from sales;
 +------+---------+------------+--------+
 | id   | product | order_date | amount |
 +------+---------+------------+--------+
 | NA   | A       | 2020-01-01 | 150    |
 | 2    | NA      | 2020-01-01 | 150    |
 | NA   | C       | NA         | 150    |
 | 4    | D       | 2020-01-01 | NA     |
 +------+---------+------------+--------+


COALESCE vs IFNULL MySQL

Meskipun IFNULL juga dapat digunakan untuk menggantikan nilai NULL, IFNULL hanya dapat menerima 2 argumen, mengembalikan argumen pertama jika nol, jika tidak mengembalikan argumen kedua. COALESCE bekerja dengan sejumlah argumen, bukan hanya dua.


COALESCE di Ubiq

Alat Pelaporan Ubiq mendukung semua kueri SQL di atas dan memudahkan untuk memvisualisasikan hasil SQL dengan cara yang berbeda. Berikut adalah query SQL COALESCE yang disebutkan di atas, di Ubiq.

Butuh alat pelaporan untuk MySQL? Ubiq memudahkan untuk memvisualisasikan data dalam hitungan menit, dan memantau di dasbor waktu nyata. Cobalah Hari Ini!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana ClusterControl Mengonfigurasi IP Virtual dan Apa yang Diharapkan Selama Failover

  2. Mengunduh dump MySQL dari baris perintah

  3. mysql - membuat mekanisme yang mirip dengan urutan Oracle

  4. Cara Memeriksa Versi MySQL

  5. Menjatuhkan batasan unik dari tabel MySQL