SQL - CASE: Panduan Ramah untuk Pemula

Hai teman-teman yang bersemangat belajar SQL! Hari ini, kita akan mengemban sebuah perjalanan menarik ke dunia dari klausa SQL CASE. Jangan khawatir jika Anda baru belajar programming - saya akan menjadi panduan ramah Anda, memecahkan konsep yang kompleks menjadi bagian-bagian kecil, mudah untuk dimengerti. Jadi, ambilkan secangkir kopi, duduk nyaman, dan mari kita masuk ke dalamnya!

SQL - CASE

Klausa 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, klausa SQL CASE seperti buku resep Anda - itu membantu Anda membuat keputusan berdasarkan kondisi yang berbeda. Itu adalah cara untuk menambah logika "if-then-else" ke query SQL Anda. Menarik, kan?

mari kita lihat contoh yang 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 detil 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".

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

Klausa CASE Dengan Klausula ORDER BY: Menyortir Dengan gaya

Sekarang, mari kita tambahkan sedikit perisa. Apakah Anda tahu Anda dapat menggunakan klausa CASE dalam klausa ORDER BY? Hal ini memungkinkan Anda menciptakan aturan penyortiran yang khusus. Itu seperti mengatur rak buku Anda dalam cara yang sangat unik!

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

Dalam query ini, kita menyortir pelanggan kita. Jika pelanggan memiliki kota yang tercantum, kita akan menyortir berdasarkan kota. Tetapi jika kota itu NULL (hilang), kita akan menggunakan negara saja. Itu seperti memiliki rencana cadangan untuk penyortiran - lumayan cerdik, kan?

Klausa CASE Dengan Klausula GROUP BY: Mengelompokkan Dengan Semangat

Berikutnya, mari kita lihat bagaimana CASE bekerja dengan GROUP BY. Kombinasi ini seperti memiliki alat pengelompokkan super-powered 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 umur. Kita membuat kategori-kategori tersebut menggunakan klausa CASE, kemudian menggunakan klausa CASE yang sama di klausa GROUP BY. Query ini akan memberitahu kita berapa banyak pelanggan kita di setiap kelompok umur. Itu seperti mengatur sebuah reuni besar keluarga dan menghitung berapa banyak meja yang diperlukan untuk setiap generasi!

Klausa CASE Dengan Klausula WHERE: Penyaringan Bersyarat

Klausa CASE juga dapat menjadi teman seperjuangan Anda di klausa WHERE, membantu Anda menciptakan 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 berubah tergantung pada kategori. Untuk kategori 1, 2, dan 3, kita menginginkan 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 inventori yang berbeda untuk bagian-bagian berbeda toko Anda!

Klausa CASE Dengan UPDATE: Mengubah Data secara Cerdik

Klausa CASE tidak hanya untuk query SELECT. Mereka juga dapat membantu Anda memperbarui data Anda dengan cara yang cerdik.

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 mereka. 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!

Klausa CASE Dengan INSERT: Menambah Data Dengan Kecerdasan

Akhirnya, mari kita lihat bagaimana CASE dapat membantu kita saat memasukkan 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 klausa 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 mengemban perjalanan ke dunia klausa SQL CASE, meng eksplor bagaimana mereka dapat digunakan dalam berbagai konteks. Dari pengambilan keputusan sederhana hingga manipulasi data yang kompleks, klausa CASE adalah alat yang kuat di dalam peralatan SQL Anda.

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

Terus kode, terus belajar, dan yang paling penting, bersenang-senang! Setelah semua, itu yang membuat dunia programming begitu menarik. Sampaijumpa lagi, semoga sukses mengejar query Anda!

Metode Deskripsi
CASE dengan SELECT Digunakan untuk output bersyarat dalam himpunan hasil
CASE dengan ORDER BY Memungkinkan penyortiran khusus berdasarkan kondisi
CASE dengan GROUP BY Memungkinkan pengelompokkan berdasarkan logika bersyarat
CASE dengan WHERE Menyediakan kondisi penyaringan yang kompleks
CASE dengan UPDATE Memungkinkan pembaruan data bersyarat
CASE dengan INSERT Memungkinkan penempatan data cerdas berdasarkan kondisi

Credits: Image by storyset