2.1 Pernyataan KASUS
Ana rong cara kanggo nulis statement ing SQL CASE
. Entri pisanan katon kaya ngalih saka basa Jawa, dene format kapindho luwih kaya jamak if-else
.
Ayo dadi miwiti karo pilihan pisanan - analog saka switch. Format umum yaiku:
CASE case_value
WHEN value1 THEN result1
[WHEN value2 THEN result2] ...
[ELSE resultN]
END
Pancen mirip banget karo switch
, mung tembung sing rada beda:
SQL | Jawa |
---|---|
kasus x | ngalih (x) { |
nalika nilai | nilai kasus: |
banjur asil | asil bali; |
liyane asil | standar: asil bali; |
pungkasan | } |
Ayo nerjemahake conto saka Jawa menyang SQL:
Jawa | SQL |
---|---|
|
|
2.2 Versi kapindho saka statement CASE
Ana uga versi kapindho operator CASE
, kang, kaya kasebut ing ndhuwur, luwih kaya jamak if-else
. Format umum yaiku:
CASE
WHEN condition 1 THEN result1
[WHEN condition 2 THEN result2] ...
[ELSE resultN]
END
Ing kene, kahanan kasebut mung dicenthang kanthi urutan, yen ana sing bener, banjur asil sing ditemtokake bakal dibalekake. Yen ora ana kondisi sing bener, banjur nilai kasebut ing ELSE
.
Ayo nerjemahake conto saka Jawa menyang SQL:
Jawa | SQL |
---|---|
|
|
|
|
|
|
2.3 Ngatasi masalah nggunakake statement CASE
Ayo nulis pitakon sing menarik. Elingi, kita duwe tugas - kanggo nambah tembung "KUTUS!" kanggo jeneng tugas kepungkur ing tabel tugas . Bisa gampang ditindakake kanthi CASE
.
Kanggo lapangan tenggat wektu , bakal katon kaya versi kapindho statement kasebut CASE
:
CASE
WHEN deadline < CURDATE() THEN CONCAT('EXPIRED!', name)
ELSE name
END
Conto pitakon lengkap nggunakake operator CASE
:
SELECT
id,
emploee_id,
CASE WHEN deadline < CURDATE() THEN CONCAT('EXPIRED!', name) ELSE name END AS name,
deadline
FROM task
Asil saka pitakonan iki bakal dadi:
id | id_karyawan | jeneng | deadline |
---|---|---|---|
1 | 1 | KADALUWARSA! Ndandani bug ing frontend | 2022-06-01 |
2 | 2 | Ndandani bug ing backend | 2022-06-15 |
3 | 5 | Tuku kopi | 2022-07-01 |
4 | 5 | Tuku kopi | 2022-08-01 |
5 | 5 | Tuku kopi | 2022-09-01 |
6 | (NULL) | Ngresiki kantor | (NULL) |
7 | 4 | Seneng urip | (NULL) |
8 | 6 | Seneng urip | (NULL) |