
Anda perlu menggunakan ekspresi untuk kueri bersyarat Anda dalam sebuah pernyataan, yang dapat dilakukan dengan menggunakan pernyataan If/Else. Tetapi PostgreSQL tidak mendukung pernyataan If/Else, alternatif untuk pernyataan If/Else di PostgreSQL adalah dengan menggunakan ekspresi “CASE”. Ekspresi “CASE” di PostgreSQL memungkinkan Anda untuk menggunakan pernyataan If/Else sebagai ekspresi kondisional di mana Anda dapat mengeksekusi kueri menggunakan “WHEN” dan “THEN” di setiap pernyataan “CASE”. Ekspresi “CASE” dapat digunakan dengan ekspresi lain juga, seperti: klausa “SELECT”, “HAVING”, “GROUP BY”, dan “WHERE”. Dalam artikel ini, kita akan memperoleh pengetahuan tentang berbagai bentuk pernyataan “KASUS” dan mendemonstrasikan berbagai contoh pernyataan “KASUS” menggunakan kasus “KAPAN” dan “KEMUDIAN” dalam contoh yang akan membuatnya lebih mudah untuk dipahami.
Bentuk Ekspresi KASUS:
Ekspresi “CASE” terdiri dari dua bentuk yaitu:
- Pernyataan ekspresi “CASE” sederhana.
- Pernyataan ekspresi “CASE” Umum/ Dicari.
Kedua bentuk mendefinisikan ekspresi bersyarat dalam kueri yang akan kita lihat dalam contoh lebih lanjut di artikel ini.
1. Pernyataan Ekspresi “CASE” sederhana di PostgreSQL:
Bentuk pertama dari sintaks dasar pernyataan “CASE” disebutkan di bawah ini:
Dalam pernyataan ini, ekspresi “CASE” pertama-tama akan mengeksekusi dan mengevaluasi ‘ekspresi’ dan membedakan hasilnya dengan klausa “WHEN” (ekspresi1, ekspresi2, dll.). Jika menemukan kecocokan, maka klausa “WHEN” akan dieksekusi.
Jika tidak ada kecocokan yang ditemukan, maka klausa “ELSE” akan dieksekusi dengan ‘else-statements’ di dalamnya. Tidak perlu menyertakan klausa “ELSE” dalam kueri, karena ini opsional, tetapi jika tidak ada klausa “ELSE” dan kecocokan masih belum ditemukan, PostgreSQL akan memberikan error pengecualian.
Untuk menjalankan kueri dan memasukkan ekspresi kondisional dalam pernyataan Anda, pertama-tama kita harus membuat tabel sampel untuk menempatkan kondisi “CASE” di dalamnya di PostgreSQL. Saya telah membuat tabel sebagai contoh:
CREATE TABLE PASSENGERS_INFO(
"Id" INT PRIMARY KEY ,
"Name" VARCHAR (100),
"Email" VARCHAR (255) UNIQUE,
"Age" INTEGER,
"Travel_to" VARCHAR (255),
"Payment" INTEGER,
"Travel_date" DATE
)
Setelah memasukkan beberapa nilai pada tabel di atas, tabel terlihat seperti ini:
Sekarang, ketika tabel dibuat, mari selami beberapa contoh ekspresi “CASE” PostgreSQL sederhana di bawah ini:
Contoh Ekspresi “KASUS” Sederhana:
Dalam tabel yang dibuat di atas, “passengers_info”, kita akan menggunakan ekspresi “CASE” sederhana dalam pernyataan. Dalam contoh di bawah ini, saya telah menggunakan ekspresi “CASE” untuk memasukkan di era usia berapa penumpang berada; misalnya, seseorang yang berusia ’22’ ditampilkan sebagai ‘berusia dua puluhan’ dan seterusnya. Di bawah ini adalah demonstrasi dari contoh ini:
SELECT "Id", "Name",
CASE
WHEN "Age" <30 THEN 'In twenties'
WHEN "Age" <40 THEN 'In thirties'
WHEN "Age" >=40 THEN 'Middle Aged'
END AGE_Era
FROM "passengers_info"
Order by "Id" ;
Dalam pernyataan di atas,
- Klausa “SELECT” memilih kolom yang perlu ditampilkan dalam output.
- Pada ekspresi “CASE”, kondisi pada klausa “WHEN” dibandingkan jika ada penumpang yang berusia kurang dari 30 tahun, kemudian dimasukkan ke dalam
hasil penumpang tersebut ‘di usia dua puluhan’ dan seterusnya. - Klausa “END” adalah untuk mengakhiri kondisi, dan ‘Age_era’ memberi nama pada kolom di output. Anda dapat menentukan nama lain yang sesuai.
- Klausa “FROM” akan mengekstrak data dari tabel yang disebutkan.
- Terakhir, klausa “Pesan berdasarkan” bersifat opsional; itu digunakan untuk mengurutkan hasil dalam urutan yang meningkat dengan “Id”.
Pernyataan di atas memberikan output berikut di layar:
Seperti yang bisa kita lihat, penumpang berusia dua puluhan, tiga puluhan, atau setengah baya ditampilkan masing-masing dengan kolom Id dan nama mereka, dan nama kolom yang kami sertakan dalam klausa “AKHIR” juga terlihat.
Ekspresi “CASE” sederhana dengan Fungsi SUM di PostgreSQL:
Kita dapat menggunakan fungsi agregat seperti COUNT, SUM, AVG, MIN, MAX dll. fungsi dalam pernyataan kita juga dalam ekspresi “CASE”. Dalam contoh di bawah ini, kita akan melihat bagaimana Anda dapat menggunakan fungsi “SUM” dalam pernyataan kondisi “CASE”:
SELECT
SUM
(CASE "Travel_to"
WHEN 'Paris' THEN 1
ELSE 0
END) "Tavelling Paris",
SUM
(CASE "Travel_to"
WHEN 'NewYork' THEN 1
ELSE 0
END) "Tavelling NewYork",
SUM
(CASE "Travel_to"
WHEN 'Sydney' THEN 1
ELSE 0
END) "Tavelling Sydney",
SUM
(CASE "Travel_to"
WHEN 'Hogwarts' THEN 1
ELSE 0
END) "Tavelling Hogwarts",
SUM
(CASE "Travel_to"
WHEN 'Maldives' THEN 1
ELSE 0
END) "Tavelling Maldives",
SUM
(CASE "Travel_to"
WHEN 'Greece' THEN 1
ELSE 0
END) "Tavelling Greece"
FROM "passengers_info" ;
Sintaks di atas menggunakan fungsi “SUM” untuk menghitung berapa banyak penumpang yang bepergian ke kota tertentu. Output untuk sintaks berikut terlampir di bawah ini:
Hasil keluaran ini menunjukkan jumlah penumpang yang melakukan perjalanan ke kota mana.
2. Pernyataan Ekspresi “CASE” Umum/ Dicari di PostgreSQL:
Sintaks berikut menunjukkan pernyataan dasar untuk menulis ekspresi “CASE” umum atau yang dicari di PostgreSQL:
Dalam ekspresi “CASE” yang dicari atau umum, kondisinya adalah ekspresi Boolean, dan ekspresi “CASE” bergantung pada ekspresi Boolean ini. Ekspresi “CASE” mengevaluasi setiap kondisi dalam pernyataan sampai kondisi ‘Benar’ ditemukan. Jika menemukan kondisi benar di beberapa titik, maka tidak pindah ke ekspresi berikutnya dan mengembalikan hasil kondisi benar. Jika tidak ada kondisi yang benar, maka pernyataan klausa “ELSE” akan dieksekusi atau mengembalikan null jika tidak ada kondisi “ELSE” yang disebutkan.
Ekspresi “CASE” Umum dengan Fungsi SUM di PostgreSQL Contoh:
Dalam contoh ini kita akan membagi dan menghitung penumpang yang melakukan perjalanan menjadi dua kelas yaitu kelas ekonomi dan kelas bisnis menggunakan fungsi “SUM”:
SELECT
SUM
(CASE
WHEN "Payment" 100000 THEN 1
ELSE 0
END
) AS "Business_Class"
FROM passengers_info;
Dalam pernyataan di atas, kami telah menggunakan ketentuan bahwa penumpang dengan pembayaran kurang dari 1 lac perjalanan ke kelas ekonomi dan lebih besar dari 1 lac akan melakukan perjalanan ke kelas bisnis. Outputnya ditampilkan sebagai:
Kesimpulan:
Sebagai kesimpulan, kita telah mempelajari dalam artikel ini bagaimana menggunakan ekspresi “CASE” di PostgreSQL. Ada dua bentuk ekspresi “KASUS”, dan keduanya dapat digunakan untuk mendapatkan hasil yang diinginkan. Kami juga telah mengeksekusi beberapa contoh menggunakan “CASE” dengan klausa “WHEN” dan “THEN” dalam pernyataan untuk mengimplementasikan sintaks ekspresi “CASE” di PostgreSQL.