Většina (pravděpodobně všechny ) programovací jazyky obsahují určitou formu IF
příkaz, který umožňuje programátorům psát podmíněný kód. Tedy kód, který se spustí pouze pokud určitá podmínka je pravdivá.
Je to velmi jednoduchý koncept. V zásadě to vypadá takto:
"Pokud toto, udělejte to."
Většina jazyků to jednoduše nazývá IF
, ale některé mají svůj vlastní překroucený název (například v ColdFusion/CFML se nazývá CFIF
).
V každém případě dělají v podstatě totéž.
V SQL Server (nebo přesněji v jeho programovacím jazyce T-SQL) se nazývá IF
.
Příklad
Zde je základní příklad, který ukazuje, jak IF
výpis funguje.
IF 1 < 2 SELECT 'True';
Výsledek:
True
V tomto případě je výraz k vyhodnocení 1 < 2
. Je pravda, že 1 je menší než 2, takže SELECT
příkaz byl spuštěn a True
byl vrácen.
Pokud je však výraz nepravdivý, nic se nestane.
Následující příklad to ukazuje:
IF 1 > 2 SELECT 'True';
Výsledek:
Commands completed successfully.
Vše, co mi SQL Server řekl, je, že příkaz byl úspěšně dokončen. Nic jiného nebylo vráceno, protože nebylo uvedeno nic jiného.
Prohlášení IF… ELSE
V SQL Server, IF
příkaz je dodáván s volitelným ELSE
, což vám umožňuje poskytnout alternativu v případě, že výraz vrátí hodnotu false.
Proto je to jako říkat „Jestli toto, udělejte toto, JINÉ, udělejte toto“.
V tomto případě můžeme přidat volitelný ELSE
do IF
příkaz, takže se stane IF... ELSE
prohlášení.
IF 1 > 2
SELECT 'True';
ELSE
SELECT 'False';
Výsledek:
False
Nyní také dostaneme výsledek, když je výraz nepravdivý.
Vnořené příkazy IF
Jedna ze skvělých věcí na IF
příkazy je, že je můžete vnořit. To znamená, že můžete přidat více IF
prohlášení uvnitř vašeho původního a další v nich atd.
Můžete vnořit tolik IF
prohlášení, jak chcete. Jste omezeni pouze množstvím dostupné paměti.
Zde je příklad vnoření IF
prohlášení uvnitř jiného.
DECLARE @bankBalance int = 123;
IF @bankBalance > 100
IF @bankBalance > 150
SELECT 'Rich!';
ELSE
SELECT 'Wealthy';
ELSE
SELECT 'Poor';
Výsledek:
Wealthy
IF… ELSE IF příkazy
Můžete jej také použít jako IF... ELSE IF
prohlášení.
DECLARE @bankBalance int = 123;
IF @bankBalance > 150
SELECT 'Rich!';
ELSE IF @bankBalance > 100
SELECT 'Wealthy';
ELSE
SELECT 'Poor';
Výsledek:
Wealthy