SQL - CASE: Panduan Mesra untuk Pemula

Hai sana, penggemar SQL yang bersemangat! Hari ini, kita akan memulai perjalanan menarik ke dunia pernyataan SQL CASE. Jangan khawatir jika Anda baru belajar pemrograman - saya akan menjadi panduan ramah Anda, memecah konsep yang kompleks menjadi bagian kecil dan mudah untuk dipahami. Jadi, ambil secangkir kopi, duduk nyaman, dan mari kita masuk ke dalam!

SQL - CASE

Pernyataan SQL CASE: Teman Baru Anda

Bayangkan Anda adalah seorang koki di dapur restoran yang sibuk. Anda memiliki resep yang berbeda untuk makanan yang berbeda, kan? Baiklah, pernyataan SQL CASE seperti buku resep Anda - itu membantu Anda membuat keputusan berdasarkan kondisi yang berbeda. Itu cara untuk menambah logika "if-then-else" ke query SQL Anda. Keren, kan?

mari kita lihat contoh sederhana:

SELECT OrderID, Quantity,
CASE
WHEN Quantity > 30 THEN 'Jumlah lebih dari 30'
WHEN Quantity = 30 THEN 'Jumlah 30'
ELSE 'Jumlah kurang dari 30'
END AS QuantityText
FROM OrderDetails;

Dalam contoh ini, kita melihat tabel rinci pesanan. Untuk setiap pesanan, kita memeriksa jumlah dan menyediakan deskripsi. Jika jumlah lebih dari 30, kita katakan "Jumlah lebih dari 30", jika itu tepat 30, kita katakan "Jumlah 30", dan untuk kasus lainnya, kita katakan "Jumlah kurang dari 30".

Pernyataan CASE dimulai dengan kata kunci CASE dan berakhir dengan END. Di antara itu, kita memiliki kondisi (WHEN) dan hasil untuk setiap kondisi (THEN). Klausul ELSE menangkap apa pun yang tidak memenuhi kondisi yang ditentukan.

Pernyataan CASE dengan Klausul ORDER BY: Pengurutan dengan gaya

Sekarang, mari kita memperbanyak hal ini. Anda tahu Anda dapat menggunakan pernyataan CASE dalam klausul ORDER BY? Ini memungkinkan Anda untuk membuat aturan pengurutan khusus. Itu seperti bisa mengatur rak buku Anda dalam cara yang sepenuhnya unik!

SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
WHEN City IS NULL THEN Country
ELSE City
END);

Dalam query ini, kita mengurutkan pelanggan kita. Jika pelanggan memiliki kota yang ditentukan, kita akan mengurutkan berdasarkan kota. Tetapi jika kota adalah NULL (hilang), kita akan menggunakan negara saja. Itu seperti memiliki rencana cadangan untuk pengurutan - lumayan cerdas, kan?

Pernyataan CASE dengan Klausul GROUP BY: Pengelompokan dengan gaya

Berikutnya, mari kita lihat bagaimana CASE bekerja dengan GROUP BY. Kombinasi ini seperti memiliki alat pengelompokan superkuat di tangan Anda.

SELECT
CASE
WHEN Age < 18 THEN 'Under 18'
WHEN Age BETWEEN 18 AND 30 THEN '18-30'
WHEN Age BETWEEN 31 AND 50 THEN '31-50'
ELSE 'Over 50'
END AS AgeGroup,
COUNT(*) AS Count
FROM Customers
GROUP BY
CASE
WHEN Age < 18 THEN 'Under 18'
WHEN Age BETWEEN 18 AND 30 THEN '18-30'
WHEN Age BETWEEN 31 AND 50 THEN '31-50'
ELSE 'Over 50'
END;

Di sini, kita mengelompokkan pelanggan kita ke dalam kategori usia. Kita membuat kategori menggunakan pernyataan CASE, kemudian menggunakan pernyataan CASE yang sama dalam klausul GROUP BY. Query ini akan memberitahu kita berapa banyak pelanggan kita di setiap kelompok usia. Itu seperti mengatur reunion besar keluarga dan menentukan berapa banyak meja yang diperlukan untuk setiap generasi!

Pernyataan CASE dengan Klausul WHERE: Penyaringan bersyarat

Pernyataan CASE juga dapat menjadi teman Anda di klausul WHERE, membantu Anda membuat kondisi penyaringan yang kompleks.

SELECT ProductName, UnitsInStock
FROM Products
WHERE
CASE
WHEN CategoryID IN (1,2,3) THEN UnitsInStock > 20
WHEN CategoryID IN (4,5,6) THEN UnitsInStock > 30
ELSE UnitsInStock > 40
END;

Dalam contoh ini, kita memilih produk berdasarkan tingkat stoknya, tetapi tingkat stok yang diperlukan berbeda-beda tergantung pada kategori. Untuk kategori 1, 2, dan 3, kita ingin produk dengan lebih dari 20 unit. Untuk kategori 4, 5, dan 6, kita memerlukan lebih dari 30 unit. Untuk semua kategori lainnya, kita mencari produk dengan lebih dari 40 unit. Itu seperti memiliki persyaratan stok yang berbeda untuk berbagai bagian toko Anda!

Pernyataan CASE dengan UPDATE: Mengubah Data secara Cerdas

Pernyataan CASE tidak hanya untuk query SELECT. Mereka juga dapat membantu Anda mengubah data dengan cara yang canggih.

UPDATE Employees
SET Salary =
CASE
WHEN Department = 'IT' THEN Salary * 1.10
WHEN Department = 'Sales' THEN Salary * 1.05
ELSE Salary * 1.03
END;

Query ini memberikan peningkatan gaji berbeda kepada karyawan berdasarkan departemen. Departemen IT mendapat peningkatan 10%, Sales mendapat 5%, dan semua departemen lain mendapat 3%. Itu seperti menjadi Santa Claus, tapi bukan memberikan mainan, melainkan memberikan peningkatan gaji!

Pernyataan CASE dengan INSERT: Menambah Data dengan Kecerdasan

Akhirnya, mari kita lihat bagaimana CASE dapat membantu kita saat menambahkan data.

INSERT INTO SalaryGrades (EmployeeID, Grade)
SELECT EmployeeID,
CASE
WHEN Salary < 30000 THEN 'Low'
WHEN Salary BETWEEN 30000 AND 50000 THEN 'Medium'
ELSE 'High'
END
FROM Employees;

Di sini, kita memasukkan tingkat gaji ke dalam tabel baru berdasarkan gaji di tabel Employees. Kita menggunakan pernyataan CASE untuk menentukan kelas untuk setiap karyawan. Itu seperti secara otomatis memberikan penilaian kinerja berdasarkan kriteria tertentu!

Kesimpulan: Kesuksesan Anda dengan CASE

Dan begitu saja, teman-teman! Kita telah melakukan perjalanan melalui negeri pernyataan SQL CASE, mengeksplorasi bagaimana mereka dapat digunakan dalam berbagai konteks. Dari pengambilan keputusan sederhana hingga manipulasi data kompleks, pernyataan CASE adalah alat kuat di dalam peralatan SQL Anda.

Ingat, seperti semua keterampilan, memahami pernyataan CASE memerlukan latihan. Jangan khawatir untuk mencoba query Anda sendiri. Sebelum Anda tahu, Anda akan menggunakan pernyataan CASE seperti seorang ahli, menambahkan rasa logika dan fleksibilitas ekstra ke interaksi basis data Anda.

Terus coding, terus belajar, dan terutama, bersenang-senang! Setelah semuanya, itu yang membuat dunia pemrograman begitu menarik. Sampai jumpa lagi, selamat berkueri!

Credits: Image by storyset