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

Cara Menggunakan Pernyataan KASUS di MySQL

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!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Karakter khusus di PHP / MySQL

  2. KIRI GABUNG hanya baris pertama

  3. Bagaimana cara melihat file log di MySQL?

  4. Pengecualian Java JDBC MySQL:Operasi tidak diizinkan setelah ResultSet ditutup

  5. Cara Transpose Baris ke Kolom Secara Dinamis di MySQL