sql >> Databáze >  >> RDS >> Sqlserver

Jak funguje příkaz IF na serveru SQL

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

  1. PDOException SQLSTATE[HY000] [2002] Žádný takový soubor nebo adresář

  2. Rozdíly mezi utf8 a latin1

  3. Používání relačních databází MySQL na Fedoře 20

  4. Smyčka SQL Server – jak mohu procházet sadou záznamů