CASE
X

CASE

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);
    
CASE 1
CASE 2
CASE 3
1 / 3
CASE 1
2 / 3
CASE 2
3 / 3
CASE 3
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;
    
CASE 4
CASE 4
PRIMER
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;
            
REZULTAT
 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.