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'
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.
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