Sök…


Enskilt IF-uttalande

Som de flesta andra programmeringsspråk stöder T-SQL också IF..ELSE-uttalanden.

Till exempel i exemplet nedan är 1 = 1 uttrycket, som utvärderar till sant och kontrollen kommer in i BEGIN..END blocket och utskriften sätter ut strängen 'One is equal to One'

IF ( 1 = 1)  --<-- Some Expression 
 BEGIN
   PRINT 'One is equal to One'
 END

Flera IF-uttalanden

Vi kan använda flera IF-uttalanden för att kontrollera flera uttryck helt oberoende av varandra.

I exemplet nedan utvärderas varje IF uttalande och om det är sant körs koden inuti BEGIN...END blocket. I det här exemplet är det första och det tredje uttrycket sant och endast de tryckta uttalandena kommer att köras.

IF (1 = 1)  --<-- Some Expression      --<-- This is true 
BEGIN
    PRINT 'First IF is True'           --<-- this will be executed
END

IF (1 = 2)  --<-- Some Expression 
BEGIN
    PRINT 'Second IF is True'
END

IF (3 = 3)  --<-- Some Expression        --<-- This true 
BEGIN
    PRINT 'Thrid IF is True'             --<-- this will be executed
END

Enskilt IF..ELSE uttalande

I ett enda IF..ELSE uttalande, om uttrycket utvärderar till True i IF uttalandet, kommer kontrollen att BEGIN..END in det första BEGIN..END blocket och endast koden inuti det blocket körs, ignoreras helt enkelt blocket.

Å andra sidan om uttrycket utvärderar till False ELSE BEGIN..END blocket och kontrollen kommer aldrig in i det första BEGIN..END blocket.

I exemplet nedan kommer uttrycket att utvärderas till falskt och Else-blocket kommer att köras och trycka strängen 'First expression was not true'

IF ( 1 <> 1)  --<-- Some Expression
 BEGIN
     PRINT 'One is equal to One'
 END
ELSE 
 BEGIN
     PRINT 'First expression was not true'
 END

Multipla IF ... ELSE med slutliga ELSE-uttalanden

Om vi har flera IF...ELSE IF uttalanden men vi också vill att vi också vill köra en kodkod om inget av uttryck utvärderas till True, kan vi enkelt lägga till ett slutligt ELSE block som bara körs om inget av IF eller ELSE IF uttryck utvärderas till sant.

I exemplet nedan ingen av IF eller ELSE IF uttrycket är sanna därmed endast ELSE blocket utförs och skriver 'No other expression is true'

IF ( 1 = 1 + 1 )
    BEGIN
       PRINT 'First If Condition'
    END 
ELSE IF (1 = 2)
    BEGIN
        PRINT 'Second If Else Block'
    END
ELSE IF (1 = 3)
    BEGIN
        PRINT 'Third If Else Block'
    END
ELSE 
    BEGIN
        PRINT 'No other expression is true'  --<-- Only this statement will be printed
    END

Flera IF ... ELSE-uttalanden

Oftare än inte behöver vi kontrollera flera uttryck och vidta specifika åtgärder baserat på dessa uttryck. Denna situation hanteras med flera IF...ELSE IF uttalanden.

I detta exempel utvärderas alla uttryck från topp till botten. Så snart ett uttryck utvärderas till sant, körs koden inuti det blocket. Om inget uttryck utvärderas till sant, körs ingenting.

IF (1 = 1 + 1)
BEGIN
    PRINT 'First If Condition'
END 
ELSE IF (1 = 2)
BEGIN
    PRINT 'Second If Else Block'
END
ELSE IF (1 = 3)
BEGIN
    PRINT 'Third If Else Block'
END
ELSE IF (1 = 1)      --<-- This is True
BEGIN
    PRINT 'Last Else Block'  --<-- Only this statement will be printed
END


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow