Penggunaan Perintah CASE Dalam SQL
Perintah CASE sering digunakan untuk menampilkan nilai tertentu dari beberapa barisan data dengan syarat-syarat atau kondisi yang kita berikan.Kalau kita belajar bahasa pemrograman tentu kita kenal dengan perintah IF Condition, fungsinya CASE hampir sama. Bedanya perintah CASE digunakan untuk beberapa kondisi sekaligus, dan didalam SQL perintah CASE tidak bisa berdiri sendiri melainkan harus disisipkan dalam perintah SELECT. Jadi berbeda dengan perintah IF yang lebih bebas, akan tetapi perintah IF hanya berguna apabila dimasukan dalam STORE PROCEDURE, FUNCTION dan TRIGGER. Perbedaannya dalam SQL sangat jelas sekali, karena perintah CASE disisipkan dalam perintah SELECT jadi yang dihasilkan langsung berupa DATASET dan langsung bisa dilihat hasilnya.
Perintah CASE ini mempunyai dua format :
1. Simple Case function :
Maksudnya adalah perintah CASE sederhana.
Bentuk Sintaknya
CASE input_expression
WHEN when_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END
2. Searched CASE function:
Maksudnya perintah CASE ini diikuti dengan syarat kondisi boolean, seperti >, <, >=, <= , dan lain-lain.
Sintaknya sebagai berikut.
CASE
WHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END
Saya akan memberikan contoh dari kedua jenis CASE tersebut agar dapat bisa membedakan, kapan saat kita memakai Simple Case dan kapan saat kita memakai Search Case.
Terlebih dahulu saya akan memberi contoh Simple Case,
Misalnya kita mempunyai lima kategori penilaian terhadap nilai ujian Mahasiswa.
A = Sangat Baik, B = ‘Baik’, C = ‘Cukup’, D = ‘Jelek’, E = ‘Sangat Jelek’
Dibawah ini ada tabel dasar berupa nilai ujian dari sejumlah Mahasiswa, kita namakan saja tb_nilai
No_induk | Nilai |
---|---|
M1001 | A |
M1002 | B |
M1003 | D |
M1004 | E |
M1005 | A |
M1006 | C |
M1007 | B |
M1008 | E |
M1009 | A |
M1010 | D |
No_induk | Nilai | Keterangan |
---|---|---|
M1001 | A | Sangat Baik |
M1002 | B | Baik |
M1003 | D | Jelek |
M1004 | E | Sangat Jelek |
M1005 | A | Sangat Baik |
M1006 | C | Cukup |
M1007 | B | Baik |
M1008 | E | Sangat Jelek |
M1009 | A | Sangat Baik |
M1010 | D | Jelek |
SELECT no_induk, nilai, keterangan = CASE nilai WHEN ‘A’ THEN ‘Sangat Baik’ WHEN ‘B’ THEN ‘Baik’ WHEN ‘C’ THEN ‘Cukup’ WHEN ‘D’ THEN ‘Jelek’ ELSE ‘Sangat Jelek’ END FROM tb_nilai |
Berikutnya saya akan memberi contoh Search Case,
Anggaplah kita mempunyai kategori nilai
nilai > 8,5 dapat kategori ‘A’,
nilai >6,5 dan <=8,5 kategori ‘B’
nilai > 5,5 dan <= 6,5 kategori ‘C’
nilai >4,5 dan <= 5,5 kategori ‘D’
Nilai <= 4,5 kategori E.
Dan kita mempunyai tabel kita beri nama saja daftar_nilai dengan isi sebagai berikut
No_induk | Nilai |
---|---|
M1001 | 9 |
M1002 | 8 |
M1003 | 6 |
M1004 | 4.5 |
M1005 | 3 |
M1006 | 5.5 |
M1007 | 8 |
M1008 | 7 |
M1009 | 6 |
M1010 | 6.5 |
No_induk | Nilai | Kategori |
---|---|---|
M1001 | 9 | A |
M1002 | 8 | C |
M1003 | 6 | B |
M1004 | 4.5 | E |
M1005 | 3 | E |
M1006 | 5.5 | D |
M1007 | 8 | B |
M1008 | 7 | B |
M1009 | 6 | C |
M1010 | 6.5 | C |
SELECT no_induk, nilai, kategori = CASE WHEN nilai > 8.5 THEN ‘A’ WHEN nilai > 6.5 THEN ‘B’ WHEN nilai > 5.5 THEN ‘C’ WHEN nilai > 4.5 THEN ‘D’ ELSE ‘E’ END FROM daftar_nilai |
Mudah-mudahan dapat bermanfaat bagi yang suka bermain-main dengan SQL.
Selamat mencoba dan semoga Anda beruntung
sumber : http://jnet99.wordpress.com/2009/02/17/penggunaan-perintah-case-dalam-sql/
0 komentar:
Posting Komentar