sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan fungerer IF-erklæringen i SQL Server

De fleste (sandsynligvis alle). ) programmeringssprog inkluderer en form for IF sætning, der tillader programmører at skrive betinget kode. Det vil sige kode, der kun vil køre hvis en bestemt betingelse er sand.

Det er et meget simpelt koncept. Grundlæggende går det sådan her:

"Hvis dette, så gør det."

De fleste sprog kalder det simpelthen IF , men nogle har deres eget twist på navnet (f.eks. i ColdFusion/CFML hedder det CFIF ).

Under alle omstændigheder gør de i det væsentlige det samme.

I SQL Server (eller mere præcist, dets programmeringssprog T-SQL) kaldes det IF .

Eksempel

Her er et grundlæggende eksempel for at demonstrere, hvordan IF erklæring virker.

IF 1 < 2 SELECT 'True';

Resultat:

True

I dette tilfælde er udtrykket, der skal evalueres, 1 < 2 . Det er rigtigt, at 1 er mindre end 2, så SELECT sætningen blev kørt og True blev returneret.

Men hvis udtrykket er falsk, vil der ikke ske noget.

Følgende eksempel viser dette:

IF 1 > 2 SELECT 'True';

Resultat:

Commands completed successfully.

Alt, hvad SQL Server fortalte mig, er, at kommandoen blev gennemført med succes. Intet andet blev returneret, fordi intet andet var angivet.

HVIS… ELSE-erklæringen

I SQL Server er IF sætning kommer med en valgfri ELSE , som giver dig mulighed for at angive et alternativ, hvis udtrykket returnerer falsk.

Derfor er det som at sige "HVIS dette, gør dette, ANDET, gør det her".

I dette tilfælde kan vi tilføje den valgfrie ELSE til IF sætning, så den bliver en IF... ELSE erklæring.

IF 1 > 2
       SELECT 'True';
ELSE 
       SELECT 'False';

Resultat:

False

Nu får vi også et resultat, når udtrykket er falsk.

Indlejrede IF-erklæringer

En af de fantastiske ting ved IF udsagn er, at du kan indlejre dem. Det vil sige, du kan tilføje flere IF udsagn inde i din originale, og flere inde i dem osv.

Du kan indlejre lige så mange IF udsagn som du vil. Du er kun begrænset af mængden af ​​tilgængelig hukommelse.

Her er et eksempel på at indlejre en IF udsagn inde i en anden.

DECLARE @bankBalance int = 123;
IF @bankBalance > 100
    IF @bankBalance > 150
        SELECT 'Rich!';
    ELSE
        SELECT 'Wealthy';
ELSE 
    SELECT 'Poor';

Resultat:

Wealthy

HVIS... ANDEN HVIS erklæringer

Du kan også bruge det som en IF... ELSE IF udmelding.

DECLARE @bankBalance int = 123;
IF @bankBalance > 150
    SELECT 'Rich!';
ELSE IF @bankBalance > 100
    SELECT 'Wealthy';
ELSE
    SELECT 'Poor';

Resultat:

Wealthy

  1. VIS TABELLER i MySQL

  2. Skal du vælge datatyperne PENGE eller DECIMAL(x,y) i SQL Server?

  3. MariaDB dato- og tidsfunktioner (fuld liste)

  4. tjek om det er en talfunktion i Oracle