SQL IF THEN ELSE příkaz – Neplést s CASE

Příkaz IF se používá ke kontrolování toku kódu hlavně při operacích, kde provádíme nějaké zásahy do db (DDL, DML operace) – třeba procedury. Můžete si ho celkem jednoduše splést s CASE příkazem. Chybou bývá, že se snažíme psát IF do klauzule SELECT, což je chyba.

Dotaz kde byste použili IF v příkazu SELECT vám určitě nebude fungovat a vyvolá chybovou hlášku – Incorrect syntax near the keyword IF

SELECT IF 1=1 THEN 'Ahoj'

SQL IF

IF se do SELECT klauzule nedává, od toho je příkaz CASE (viz. článek o CASE)

SYNTAXE T-SQL IF příkazu

Začínáme příkazem IF a potom hned definicí podmínky. V případě, že je podmínka Pravdivá, provede se příkaz následující za IF a pokud ne provede se příkaz za ELSE.

IF podmínka
   ...příkaz, který se provede pokud je hodnota podmínky TRUE;

ELSE
  ...příkaz, který se provede pokud je podmínka v IF FALSE;

Tato syntaxe bude fungovat, ale optimálnější je ohraničit jednotlivé příkazy transakcí BEGIN END klauzulí:

IF podmínka
  BEGIN
     ...příkaz, který se provede pokud je hodnota podmínky TRUE
  END;
ELSE
  BEGIN
     ...příkaz, který se provede pokud je podmínka v IF FALSE
  END;

V příkazu sql IF nepíšeme “THEN”. Příkaz neumí ani ELSEIF a pokud bychom chtěli testovat více podmínek, musíme větvit nebo použít několik IF za sebou.

5/5 - (1 vote)
Rubrika: SQL příkazy

O Ing. Jan Zedníček - Data Engineer & Controlling

Jmenuji se Honza Zedníček a působím jako data engineer freelancer. Během cca 10 let jsem zde shromáždil přes 600 IT case studies, průvodců, návodů a tipů určených zejména odborné veřejnosti, studentům a zájemcům o informace z oblastí Data Engineeringu, korporátních financí a reportingu. Zaměřuji se především na Microsoft technologie (on-prem i cloud) a různé synergické efekty v rámci jejich produktového portfolia pro dataře a finanční profesionály. Věnuji se také dalším platformám a významným hráčům z oblasti open source technologií. 🔥 Pokud vám tento článek pomohl, ocením referenci na vašem webu nebo zmínku v komunitě. A mám pro vás ještě tip: řešíte-li nějaký zapeklitý Excel problém, přihlašte se do naší Excel Facebook skupiny (2.4k+ členů), kde si pomáháme Excel CZ/SK diskuse ».

1 thoughts on “SQL IF THEN ELSE příkaz – Neplést s CASE

  1. Lubomír

    Stručné a velice srozumitelné vysvětlení.
    Hledal jsem, proč se nepoužívá IF v select příkazech a zde je to perfektně vysvětlené 🙂
    Díky

Leave a Reply

Your email address will not be published. Required fields are marked *