Pernyataan Kasus MySQL memungkinkan Anda untuk memeriksa nilai untuk beberapa kondisi dalam kueri SQL. Pada artikel ini kita akan melihat bagaimana menggunakan pernyataan kasus di MySQL.
Cara Menulis Pernyataan Kasus di MySQL
Berikut adalah sintaks untuk pernyataan Kasus MySQL.
select case when condition1 then value1 when condition2 then value2 ... end, column2, column3, ... from table_name
Dalam kueri di atas, Anda perlu menentukan nama tabel. Anda juga perlu menyebutkan setiap kondisi yang ingin Anda periksa pada kolom tertentu, dalam kasus… pernyataan akhir. Anda juga perlu menyebutkan nilai yang akan diberikan ke kolom jika setiap kondisi benar, yaitu untuk setiap kasus.
Contoh Kasus MySQL
Mari kita lihat beberapa contoh fungsi MySQL Case di bawah ini.
Katakanlah Anda memiliki tabel berikut penjualan(id, tanggal_pesanan, jumlah) .
mysql> create table sales(id int, order_date date, amount int); mysql> insert into sales(id, order_date, amount) values(1, '2021-01-01', 150), (1, '2021-01-02', 250), (1, '2021-01-03', 100), (1, '2021-01-04', 150), (1, '2021-01-05', 350); mysql> select * from sales; +------+------------+--------+ | id | order_date | amount | +------+------------+--------+ | 1 | 2021-01-01 | 150 | | 1 | 2021-01-02 | 250 | | 1 | 2021-01-03 | 100 | | 1 | 2021-01-04 | 150 | | 1 | 2021-01-05 | 350 | +------+------------+--------+
Bonus baca:Cara Query kolom JSON di MySQL
Inilah kueri SQL untuk mengelompokkan jumlah nilai menjadi 3 ember – kurang dari sama dengan 100, 100-300, dan lebih dari 300.
mysql> select id, order_date, case when amount<=100 then 'less than equal to 100' when amount>100 and amount<300 then '101 to 300' when amount>=300 then 'greater than 300' end as bucket from sales; +------+------------+------------------------+ | id | order_date | bucket | +------+------------+------------------------+ | 1 | 2021-01-01 | 101 to 300 | | 1 | 2021-01-02 | 101 to 300 | | 1 | 2021-01-03 | less than equal to 100 | | 1 | 2021-01-04 | 101 to 300 | | 1 | 2021-01-05 | greater than 300 | +------+------------+------------------------+
Bonus baca :Cara Menghindari Memasukkan Data Duplikat di MySQL
Harap dicatat, jika tidak ada pernyataan kasus yang memenuhi nilai, maka pernyataan CASE akan mengembalikan NULL. Ini contohnya
mysql> select id, order_date, case when amount<100 then 'less than 100' when amount>100 and amount<300 then '100 to 300' when amount>300 then 'greater than 300' end as bucket from sales; +------+------------+------------------+ | id | order_date | bucket | +------+------------+------------------+ | 1 | 2021-01-01 | 100 to 300 | | 1 | 2021-01-02 | 100 to 300 | | 1 | 2021-01-03 | NULL | | 1 | 2021-01-04 | 100 to 300 | | 1 | 2021-01-05 | greater than 300 | +------+------------+------------------+
Dalam contoh di atas, pernyataan CASE mengembalikan NULL untuk 100, karena tidak memenuhi salah satu kondisi.
Pernyataan Kasus MySQL berguna untuk membuat distribusi frekuensi dan nilai pengelompokan.
Anda juga dapat menggunakan kondisi WHERE untuk menerapkan pernyataan kasus pada subset baris.
select id, order_date, case when amount<=100 then 'less than equal to 100' when amount>100 and amount<300 then '101 to 300' when amount>=300 then 'greater than 300' end as bucket from sales WHERE <condition>;
Kasus MySQL di Ubiq
Alat Pelaporan Ubiq mendukung semua kueri SQL di atas dan memudahkan untuk memvisualisasikan hasil SQL dengan cara yang berbeda. Berikut adalah kueri CASE SQL 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!