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 CASEdigunakan untuk beberapa kondisi sekaligus, dan didalam SQL perintahCASE tidak bisa berdiri sendiri melainkan harus disisipkan dalam perintahSELECT. 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 :
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
Oke langsung aja saya akan memberikan contoh CASE untuk kawan-kawan semua, tentu tujuannya agar Anda bisa lebih paham tentang penggunaan CASE. Berikut adalah syntaknya guys:
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
Oke langsung aja saya akan memberikan contoh CASE untuk kawan-kawan semua, tentu tujuannya agar Anda bisa lebih paham tentang penggunaan CASE. Berikut adalah syntaknya guys:
1. CREATE
DATABASE Northwind
MAKSUD DARI SCRIPT DIATAS:
- Artinya kita membuat database baru dengan nama “Northwind”. Nama database bisa Anda ganti sesuai keinginan Anda guys.
2.CREATE TABLE products (Products_ID INT(10) PRIMARY KEY AUTO_INCREMENT, Products_Name VARCHAR(100), UnitsInStock INT(10))
MAKSUD DARI SCRIPT
DIATAS:
· Artinya
kita membuat table baru bernama “Products”.
· Nah, didalam table tersebut terdapat 3 field,
yaitu Products_ID, Products_Name dan UnitsInStock. Terus dibelakang field
Products_ID itu kan ada int(10) yaa, maksudnya int(10) itu field Products_ID hanya
bisa diisi dengan 10 angka. Lalu kenapa angka? Bukan huruf? Karena type datanya
adalah int, bukan varchar atau datetime, dll. Untuk type data yang lebih
lengkap, anda bisa melihatnya di link ini guys.
· Terus di field Products_ID setelah int(10) ada
kata PRIMARY KEY, maksudnya field Products_ID ini telah menjadi primary key,
yaitu kunci utama/no identitas dalam isi
field. Itu artinya inilah yang menjadi pembeda antara isi field satu dengan isi
field lain, karena tidak ada yang sama.
· Lalu setelah perintah “PRIMARY KEY” terdapat
perintah “AUTO_INCREMENT”. Maksud perintah AUTO_INCREMENT yaitu akan mengisi data secara otomatis dari primary key tersebut.
Misal primary key-nya adalah int(angka), maka akan muncul angka 1,2,3,4,dst
secara otomatis tanpa kita menginputnya di script SQL.
3. INSERT INTO products VALUES
('',
'Chai', '39'),
('',
'Aniseed Syrup', '13'),
('',
'Chef Antons Cajun Seasoning', '53'),
('',
'Chef Antons Gumbo Mix', '0'),
('',
'Grandmas Boysenberry Spread', '120'),
('',
'Uncle Bobs Organic Dried Pears', '15'),
('',
'Northwoods Cranberry Sauce', '6'),
('',
'Mishi Kobe Niku', '29'),
('',
'Ikura', '31'),
('',
'Queso Cabrales', '22'),
('',
'Queso Manchego La Pastora', '86'),
('',
'Konbu', '24'),
('',
'Tofu', '35'),
('',
'Genen Shouyu', '39')
MAKSUD DARI SCRIPT
DIATAS:
·
Perintah
INSERT INTO maksudnya kita akan mengisi data ke field products dengan
values/data ('', '(isi terserah Anda )', '(isi terserah Anda)'). Lalu kenapa
ada satu field yang tidak di isi?? Kenapa hayoo? Ada yang tahu?? Yups
jawabanyya karena itu sudah menjadi primary key, jadi tidak perlu diisi karena
nanti akan muncul secara otomatis. Agar lebih
jelas mending langsung dicoba aja guys. .
4. SELECT Products_ID, Products_Name, UnitsInStock,
CASE
WHEN UnitsInStock <5 THEN 'Stock Habis'
WHEN UnitsInStock BETWEEN 5 AND 15 THEN 'Harus Order'
ELSE 'Stock Cukup'
END AS Keterangan
FROM Products
MAKSUD DARI SCRIPT
DIATAS:
· SELECT artinya kita akan memilih data yang akan ditampilkan. Disini saya
memilih untuk menampilkan data Products_ID, Products_Name, dan UnitsInStock.
·
CASE artinya “yang mana”
·
WHEN (ketika) UnitsInStock <5 (bacanya kurang dari 5. Jika >5 bacanya lebih dari 5. Jika =5
bacanya sama dengan 5, dll) maka akan muncul tulisan 'Stock
Habis', kemudian
·
WHEN (ketika) UnitsInStock BETWEEN (diantara) 5 dan 10 maka akan muncul tulisan 'Harus Order'.
· ELSE artinya “jika tidak” diantara keduanya maka akan muncul tulisan 'Stock
Cukup'.
·
END, itu artinya adalah akhir dari rumus tersebut.
·
Selanjutnya jika kita
ingin menampilkan itu semua di kolom baru, kita harus menambahkan AS, lalu setelah AS ada nama kolom baru
yang kita inginkan. Disini saya menamakan kolom baru tersebut dengan nama Keterangan.
·
FROM Products artinya kita mengambil
data tersebut dari table Products
Oke itu adalah contoh CASE yang pernah
saya pelajari guys. Gimana? Ente berhasil menerapkannya dikomputer ente gak?
Klo gak berhasil yaa sudah, mungkin Anda kurang beruntung..wkwk #juskid. Klo
misalnya belum berhasil silahkan dicoba lagi guys, mungkin syntak yang Anda
tulis ada yang salah. Terus buat yang udah berhasil, gue punya soal nih buat
kalian…,
1. Buatlah table baru
didalam database Northwind dengan nama table customer. Didalam table tersebut
terdapat 3 field, yaitu CustomerID,CompanyName, dan Country. Sedangkan
type data untuk semua field tersebut adalah varchar. Masing-masing jumlah
inputan untuk field tersebut (secara urut) adalah 10 karakter, 100 karakter dan
50 karakter.
2. Tambahkan data dibawah
ini kedalam teble tersebut.
CustomerID
|
CompanyName
|
Country
|
ALFKI
|
Alfreds
Futterkiste
|
Germany
|
ANATR
|
Ana
Trujillo Emparedados y helados
|
Mexico
|
ANTON
|
Antonio
Moreno Taqueria
|
Mexico
|
AROUT
|
Around
the Horn
|
UK
|
BERGS
|
Berglunds
snabbkop
|
Swedan
|
BLAUS
|
Blauer
See Delikatessan
|
Germany
|
BOTTM
|
Bottom-Dollar
Markets
|
Canada
|
BSBEV
|
Bs
Beverages
|
UK
|
CACTU
|
Cactus
Comidas para Ilever
|
Argentina
|
DRACD
|
Drachenblut
Delikatessan
|
Germany
|
DUMON
|
Du
monde entier
|
France
|
EASTC
|
Eastern
Connection
|
UK
|
GOURL
|
Gourmet
Lanchonetes
|
Brazil
|
GREAL
|
Great
Lakes Food Market
|
USA
|
3. Tampilkan nilai customerID,
CompanyName dan tambahkan 1 field lagi bernama
Negara, dimana Negara yang country-nya adalah UK menjadi “United Kingdoms” dan
USA menjadi “United State of America”. Untuk lebih jelasnya lihatlah gambar
akhir dari soal tersebut.
Gimana guys, soalnya mudah bukan???hehe.
Jika Anda berhasil menyelesaikan soal diatas, saya ucapkan selamat, namun jika
Anda belum berhasil, tetaplah berusaha. Anda pasti bisa. Oiyya, buat Anda yang
pengin mengintip jawaban dari soal diatas, Anda bisa download filenya disini.
Buat Anda yang pengin download file contoh CASE yang sudah saya jelaskan
diatas, Anda bisa download file-nya disini.
No comments:
Post a Comment