Stavek CASE() gre skozi pogoje in vrne vrednost, ko je izpolnjen prvi pogoj (kot stavek IF-THEN-ELSE). Pomeni, da, ko je pogoj resničen, bo prenehal brati in vrnil rezultat. V primeru, da noben pogoj ni resničen, vrne vrednost v klavzuli ELSE, če ni dela ELSE in noben pogoj ni resničen, vrne NULL. Najprej izdelajmo tabelo z imenom numericno:
CREATE TABLE numericno (
id_narocila INT AUTO_INCREMENT PRIMARY KEY,
stevilka_narocila INT,
kosi INT,
datum TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
Vpišimo nekaj podatkov:
INSERT INTO numericno (stevilka_narocila, kosi)
VALUES
(10001, 23),
(10022, 3),
(10033, 230),
(10444, 43),
(15555, 60),
(12346, 100),
(10127, 123),
(10521, 3214),
(18001, 9),
(18501, 78);
| id_narocila | stevilka_narocila | kosi | datum |
|---|---|---|---|
| 1 | 10001 | 23 | 2024-07-07 13:23:24 |
| 2 | 10022 | 3 | 2024-07-07 13:23:24 |
| 3 | 10033 | 230 | 2024-07-07 13:23:24 |
| 4 | 10444 | 43 | 2024-07-07 13:23:24 |
| 5 | 15555 | 60 | 2024-07-07 13:23:24 |
| 6 | 12346 | 100 | 2024-07-07 13:23:24 |
| 7 | 10127 | 123 | 2024-07-07 13:23:24 |
| 8 | 10521 | 3214 | 2024-07-07 13:23:24 |
| 9 | 18001 | 9 | 2024-07-07 13:23:24 |
| 10 | 18501 | 78 | 2024-07-07 13:23:24 |
Pojdimo skozi pogoje, ki vrnejo vrednost, ko je pogoj izpolnjen.
SELECT stevilka_narocila, kosi,
CASE
WHEN kosi = 230 THEN 'V košarici je 230 kosov.'
WHEN kosi > 10 THEN 'Velikost košarice je večja od 10.'
ELSE 'V košarici je manj kot 10 kosov.'
END
FROM numericno;
SELECT stevilka_narocila, kosi,
CASE
WHEN kosi = 230 THEN 'V košarici je 230 kosov.'
WHEN kosi > 10 THEN 'Velikost košarice je večja od 10.'
ELSE 'V košarici je manj kot 10 kosov.'
END
FROM numericno;
| stevilka_narocila | kosi | CASE WHEN kosi > 10 THEN 'Velikost košarice je večja od 10.'... | |
|---|---|---|---|
| 1 | 10001 | 23 | Velikost košarice je večja od 10. |
| 2 | 10022 | 3 | V košarici je manj kot 10 kosov. |
| 3 | 10033 | 230 | V košarici je 230 kosov. |
| 4 | 10127 | 123 | Velikost košarice je večja od 10. |
| 5 | 10444 | 43 | Velikost košarice je večja od 10. |
| 6 | 10521 | 3214 | Velikost košarice je večja od 10. |
| 7 | 12346 | 100 | Velikost košarice je večja od 10. |
| 8 | 15555 | 60 | Velikost košarice je večja od 10. |
| 9 | 18001 | 9 | V košarici je manj kot 10 kosov. |
| 10 | 18501 | 78 | Velikost košarice je večja od 10. |