Facebook iconTwitter icon

Nachádzate sa tu

Domov

07. SQL CASE

Príkaz CASE v SQL predstavuje vo svojej podstate IF podmienku tak, ako je chápaná v iných progromovacích jazykoch. V prípade, že je splnená špecifická podmienka, vykonaj zadanú úlohu, inak sprav niečo iné. 

Príkaz má nasledovnú syntax: CASE WHEN...THEN...ELSE...END

Príklad: 

V tabuľke zamestnancov vytvoríme nový stĺpec, v ktorom zadefinujeme, či zamestnane zarába viac ako je priemer v národnom hospodárstve, menej, resp. práve priemer národného hospodárstva. 

SELECT ID_zakaznik, sum(mzda) as mzda_zamestnanec, 10000 as priemer_hospodarstvo, 

CASE WHEN sum(mzda) > 10000 THEN 'Nadpriemerný zárobok'
WHEN sum(mzda) < 10000 THEN 'Podpriemerný zárobok'
ELSE 'Priemerný zárobok'
END as mzda_vs_priemer

FROM tabulka_zamestnance
GROUP BY ID_zakaznik
ORDER BY mzda_vs_priemer desc

Zadaných podmienok prostredníctvom WHEN...THEN môže byť teoreticky nekonečne veľa, avšak treba si uvedomiť, že čím komplikovanejší CASE query obsahuje, tým je náročnejšie na výpočtovú kapacitu a tým pádom aj pomalšie. CASE môže samozrejme okrem jednoduchých textov obsahovať aj zložité výpočty, pričom prostredníctvom nej je možné vetviť výpočet rôznymi smermi cez definované podmienky.  

SQL CASE podmienka predstavuje veľmi silný nástroj, ktorí má v SQL progarmovaní všestranné využite.

V premennej priemer_hospodarstvo sme pre lepší vyzuálny efekt do výsledku zahrnuli konštantu 10000 as priemer_hospodarstvo. Teda v každom jednom riadku pribudne nová bunka v stĺpci priemer_hospodarstvo a bude nadobúdať hodnotu 10000. Rovnakým spôsobom môžeme do výsledku zahrnúť aj textové hodnoty, napr. 'LMCTn' as The_Best_Ever :).   

V Accesse podmienka CASE neexistuje, resp. vystupuje pod inou syntaxou IIF(a>b;'c';'d').

 

Všetky príspevky v tejto kategórii:

Reklamné odkazy

kosime.sk
Kosenie trávy, čistenie pozemkov a záhradnícke práce