De flesta (förmodligen alla ) programmeringsspråk inkluderar någon form av IF
uttalande som tillåter programmerare att skriva villkorlig kod. Det vill säga kod som endast körs om ett visst villkor är sant.
Det är ett väldigt enkelt koncept. I princip ser det ut så här:
"Om detta, gör det."
De flesta språk kallar det helt enkelt IF
, men vissa har sin egen twist på namnet (till exempel i ColdFusion/CFML heter det CFIF
).
I alla fall gör de i princip samma sak.
I SQL Server (eller mer exakt, dess programmeringsspråk T-SQL) kallas det IF
.
Exempel
Här är ett grundläggande exempel för att visa hur IF
uttalande fungerar.
IF 1 < 2 SELECT 'True';
Resultat:
True
I det här fallet är uttrycket som ska utvärderas 1 < 2
. Det är sant att 1 är mindre än 2 så SELECT
uttalandet kördes och True
returnerades.
Men om uttrycket är falskt kommer ingenting att hända.
Följande exempel visar detta:
IF 1 > 2 SELECT 'True';
Resultat:
Commands completed successfully.
Allt SQL Server sa till mig är att kommandot slutfördes framgångsrikt. Inget annat returnerades, eftersom inget annat var specificerat.
OM... ANNAT uttalande
I SQL Server, IF
uttalande kommer med en valfri ELSE
, som låter dig tillhandahålla ett alternativ, om uttrycket returnerar falskt.
Därför är det som att säga "OM detta, gör det här, ANNAT, gör det här".
I det här fallet kan vi lägga till den valfria ELSE
till IF
sats, så att den blir en IF... ELSE
uttalande.
IF 1 > 2
SELECT 'True';
ELSE
SELECT 'False';
Resultat:
False
Nu får vi också ett resultat när uttrycket är falskt.
Inkapslade IF-utlåtanden
En av de fantastiska sakerna med IF
påståenden är att du kan kapsla dem. Det vill säga, du kan lägga till fler IF
uttalanden inuti din ursprungliga, och fler inuti dem etc.
Du kan kapsla så många IF
uttalanden som du vill. Du är bara begränsad av mängden tillgängligt minne.
Här är ett exempel på att kapsla en IF
uttalande i en annan.
DECLARE @bankBalance int = 123;
IF @bankBalance > 100
IF @bankBalance > 150
SELECT 'Rich!';
ELSE
SELECT 'Wealthy';
ELSE
SELECT 'Poor';
Resultat:
Wealthy
OM... ANNAT OM-uttalanden
Du kan också använda den som en IF... ELSE IF
påstående.
DECLARE @bankBalance int = 123;
IF @bankBalance > 150
SELECT 'Rich!';
ELSE IF @bankBalance > 100
SELECT 'Wealthy';
ELSE
SELECT 'Poor';
Resultat:
Wealthy