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:

Hvordan hvis og andet virker
Hvordan hvis og andet virker
  • 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'

HVIS…ELSE med den eneste numeriske værdi i boolesk udtryk

Tilstand: FALSK

IF (1=2)
PRINT 'IF STATEMENT: CONDITION IS TRUE'
ELSE
PRINT 'ELSE STATEMENT: CONDITION IS FALSE'

HVIS…ELSE med den eneste numeriske værdi i boolesk udtryk

Antagelse: Antag at du har tabellen som 'Guru99' med to kolonner og fire rækker som vist nedenfor:

HVIS…ELSE med den eneste numeriske værdi i boolesk udtryk

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

HVIS...ELSE med variablen i boolesk udtryk

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

HVIS...ELSE med variablen i boolesk udtryk

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

HVIS...ANDEN med Begin 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

HVIS...ANDEN med Begin 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:

IF-erklæring med No Else

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

IF-erklæring med No Else

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.

Indlejrede IF…Else-udsagn

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.

Dagligt Guru99 Nyhedsbrev

Start dagen med de seneste og vigtigste AI-nyheder leveret lige nu.