Microsoft SQL Server
OM ANNAT
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