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