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) |
GO TO FULL VERSION