SQL Server IF…ELSE Betingelseserklæring: T-SQL Select Query Eksempel
Hvorfor har du brug for betingede erklæringer?
Betingede sætninger i SQL-serveren hjælper dig med at definere forskellige logikker og handlinger for forskellige forhold. Det giver dig mulighed for at udføre forskellige handlinger baseret på betingelser defineret i erklæringen. I det virkelige liv udfører du mange handlinger afhængigt af resultatet af en anden aktivitet eller situation.
Nogle eksempler i realtid på SQL-casesætninger er:
- Hvis det regner i morgen, planlægger jeg en roadtrip.
- Hvis flybilletter er mindre end $400 fra min by, vil jeg tage på ferie i Europa, ellers foretrækker jeg et turiststed i nærheden.
Her kan du se, at en handling, som Road trip ovenfor, er betinget afhængig på resultatet af en anden aktivitet, som er "om det vil regne eller ej i morgen!"
Tilsvarende giver MS SQL også mulighed for at udføre T-SQL-sætning betinget.
IF… Andet sætning i SQL Server
In MSSQL, HVIS ELLERS er en type af Betinget erklæring.
Enhver T-SQL-sætning kan udføres betinget vha HVIS ELLERS.
Nedenstående figur forklarer IF ELSE i SQL server:
- Hvis tilstanden vurderes til Rigtigt, derefter T-SQL-sætninger efterfulgt af IF betingelse i SQL server vil blive udført.
- Hvis tilstanden vurderes til Falsk, derefter T-SQL-sætninger efterfulgt af ELSE søgeord vil blive udført.
- Når enten IF T-SQL-sætninger eller ELSE T-SQL-sætninger er udført, fortsætter andre ubetingede T-SQL-sætninger eksekveringen.
HVIS… Ellers Syntaks og regler i SQL
Syntaks:
IF <Condition> {Statement | Block_of_statement} [ ELSE {Statement | Block_of_statement}]
Regler:
- Betingelsen bør være Boolsk udtryk, dvs. betingelse resulterer i boolsk værdi, når den evalueres.
- IF ELSE erklæring i SQL kan betinget håndtere en enkelt T-SQL-sætning eller blok af T-SQL-sætninger.
- Udsagnsblok skal starte med søgeord BEGIN og lukke med søgeord END.
- Brug af BEGIN og END hjælper SQL-serveren med at identificere sætningsblok, der skal udføres, og adskille den fra resten af T-SQL-sætningerne, som ikke er en del af IF…ELSE T-SQL-blokken.
- ANDET er valgfrit.
HVIS…ELSE med den eneste numeriske værdi i boolesk udtryk.
Tilstand: SAND
IF (1=1) PRINT 'IF STATEMENT: CONDITION IS TRUE' ELSE PRINT 'ELSE STATEMENT: CONDITION IS FALSE'
Tilstand: FALSK
IF (1=2) PRINT 'IF STATEMENT: CONDITION IS TRUE' ELSE PRINT 'ELSE STATEMENT: CONDITION IS FALSE'
Antagelse: Antag at du har tabellen som 'Guru99' med to kolonner og fire rækker som vist nedenfor:
Vi vil bruge 'Guru99' tabel i yderligere eksempler
IF…ELSE med variablen i boolesk udtryk.
Tilstand: SAND
DECLARE @Course_ID INT = 4 IF (@Course_ID = 4) Select * from Guru99 where Tutorial_ID = 4 ELSE Select * from Guru99 where Tutorial_ID != 4
Tilstand: FALSK
DECLARE @Course_ID INT = 4 IF (@Course_ID != 4) Select * from Guru99 where Tutorial_ID = 4 ELSE Select * from Guru99 where Tutorial_ID != 4
IF…ANDES med Begin End
Tilstand: SAND
DECLARE @Course_ID INT = 2 IF (@Course_ID <=2) BEGIN Select * from Guru99 where Tutorial_ID = 1 Select * from Guru99 where Tutorial_ID = 2 END ELSE BEGIN Select * from Guru99 where Tutorial_ID = 3 Select * from Guru99 where Tutorial_ID = 4 END
Tilstand: FALSK
DECLARE @Course_ID INT = 2 IF (@Course_ID >=3) BEGIN Select * from Guru99 where Tutorial_ID = 1 Select * from Guru99 where Tutorial_ID = 2 END ELSE BEGIN Select * from Guru99 where Tutorial_ID = 3 Select * from Guru99 where Tutorial_ID = 4 END
IF-erklæring med No Else
Du kan bruge en IF-sætning i SQL uden en ELSE-del. Husk, at vi sagde, at ELSE-delen er valgfri. For eksempel:
DECLARE @Course_ID INT = 2 IF (@Course_ID <=2) Select * from Guru99 where Tutorial_ID = 1
Den udskriver følgende:
Udførelse af den falske tilstand vil ikke give noget output. Overvej følgende forespørgsel
DECLARE @Course_ID INT = 2 IF (@Course_ID <=0) Select * from Guru99 where Tutorial_ID = 1
Resultatet det
Indlejrede IF…Else-udsagn
I modsætning til andre programmeringssprog, kan du ikke tilføje en ELSE IF-sætning i en IF ELSE-betingelse i SQL. Det er derfor, du kan indlejre IF ELSE i SQL-forespørgselssætninger. Det er demonstreret nedenfor:
DECLARE @age INT; SET @age = 60; IF @age < 18 PRINT 'underage'; ELSE BEGIN IF @age < 50 PRINT 'You are below 50'; ELSE PRINT 'Senior'; END;
- I dette eksempel vil koden udskrive mindreårige, hvis værdien af @age er under 18.
- Hvis ikke, vil ELSE-delen blive udført. ElSE-delen har en indlejret IF…ELSE.
- Hvis værdien af @age er under 50, vil dette udskrives. Du er under 50. Hvis ingen af disse betingelser er sande, udskrives koden Senior.
Resumé
- Variabler er det objekt, der fungerer som en pladsholder.
- Udsagnsblok skal starte med søgeord BEGIN og lukke med søgeord END.
- Else er valgfrit at bruge i IF… ELSE-sætningen
- Indlejring af SQL IF ELSE-tilstand i en anden IF…ELSE-sætning er også muligt.