SQL Server IF…ELSE Conditie-instructie: T-SQL Select Query-voorbeeld

Waarom heb je voorwaardelijke verklaringen nodig?

Voorwaardelijke instructies in de SQL-server helpen u bij het definiëren van verschillende logica's en acties voor verschillende omstandigheden. Hiermee kunt u verschillende acties uitvoeren op basis van de voorwaarden die in de instructie zijn gedefinieerd. In het echte leven voer je veel acties uit, afhankelijk van de uitkomst van een andere activiteit of situatie.

Enkele real-time voorbeelden van een SQL-case-instructie zijn:

  • Als het morgen regent, plan ik een roadtrip.
  • Als vliegtickets vanuit mijn stad minder dan $ 400 kosten, dan ga ik op vakantie in Europa, anders geef ik de voorkeur aan een nabijgelegen toeristische plek.

Hier kun je zien dat één actie, zoals Roadtrip hierboven, is voorwaardelijk afhankelijk over de uitkomst van een andere activiteit, namelijk “of het morgen gaat regenen of niet!”

Op dezelfde manier biedt MS SQL ook de mogelijkheid om de T-SQL-instructie voorwaardelijk uit te voeren.

IF… Anders-instructie in SQL Server

In MS SQL, ALS... ANDERS is een soort Voorwaardelijke verklaring.

Elke T-SQL-instructie kan voorwaardelijk worden uitgevoerd met behulp van ALS... ANDERS.

Onderstaande afbeelding legt IF ELSE uit in de SQL-server:

Hoe If and Else werkt
Hoe if en else werkt
  • Als de toestand evalueert True, vervolgens T-SQL-instructies gevolgd door IF voorwaarde in de SQL-server wordt uitgevoerd.
  • Als de toestand evalueert Vals, vervolgens T-SQL-instructies gevolgd door ELSE trefwoord wordt uitgevoerd.
  • Zodra IF T-SQL-instructies of ELSE T-SQL-instructies worden uitgevoerd, worden andere onvoorwaardelijke T-SQL-instructies voortgezet.

ALS… Anders Syntaxis en regels in SQL

Syntax:

IF <Condition>
     {Statement | Block_of_statement}   
[ ELSE   
     {Statement | Block_of_statement}]

Reglement:

  • De voorwaarde zou moeten zijn Booleaanse uitdrukking, dat wil zeggen, condition resulteert in een Booleaanse waarde wanneer deze wordt geëvalueerd.
  • IF ELSE-verklaring in SQL kan voorwaardelijk een enkele T-SQL-instructie of een blok T-SQL-instructies verwerken.
  • Het instructieblok moet beginnen met het trefwoord BEGIN en eindigen met het trefwoord END.
  • Door BEGIN en END te gebruiken, kan de SQL-server het instructieblok identificeren dat moet worden uitgevoerd en dit scheiden van de rest van de T-SQL-instructies die geen deel uitmaken van het IF…ELSE T-SQL-blok.
  • ANDERS is optioneel.

IF…ELSE met de enige numerieke waarde in de Booleaanse expressie.

Conditie: WAAR

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

IF…ELSE met de enige numerieke waarde in de Booleaanse expressie

Conditie: ONWAAR

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

IF…ELSE met de enige numerieke waarde in de Booleaanse expressie

Veronderstelling: Stel dat u de tabel als 'Guru99' met twee kolommen en vier rijen, zoals hieronder weergegeven:

IF…ELSE met de enige numerieke waarde in de Booleaanse expressie

We zullen gebruiken 'Guru99' tabel in verdere voorbeelden

IF…ELSE met de variabele in de Booleaanse expressie.

Conditie: WAAR

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...ELSE met de variabele in de Booleaanse expressie

Conditie: ONWAAR

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...ELSE met de variabele in de Booleaanse expressie

ALS…ELSE met Begin Einde

Conditie: WAAR

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

ALS...ELSE met Begin Einde

Conditie: ONWAAR

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

ALS...ELSE met Begin Einde

IF-verklaring met No Else

U kunt een IF-instructie in SQL gebruiken zonder een ELSE-gedeelte. Vergeet niet dat we hebben aangegeven dat het ELSE-gedeelte optioneel is. Bijvoorbeeld:

DECLARE @Course_ID INT = 2

IF (@Course_ID <=2)
	Select * from Guru99 where Tutorial_ID = 1

Het drukt het volgende afwing:

IF-verklaring met No Else

Het uitvoeren van de valse voorwaarde levert geen uitvoer op. Denk eens aan het volgendewing vraag

DECLARE @Course_ID INT = 2

IF (@Course_ID <=0)
	Select * from Guru99 where Tutorial_ID = 1

Het resultaat is

IF-verklaring met No Else

Geneste IF…Else-instructies

In tegenstelling tot andere programmeertalen, kunt u geen ELSE IF-instructie toevoegen binnen een IF ELSE-voorwaarde in SQL. Dit is de reden waarom u IF ELSE kunt nesten in SQL-query-instructies. Hieronder wordt het gedemonstreerd:

 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;
  • In dit voorbeeld drukt de code minderjarig af als de waarde van @age lager is dan 18.
  • Als dit niet het geval is, wordt het ELSE-gedeelte uitgevoerd. Het ElSE-gedeelte heeft een geneste IF…ELSE.
  • Als de waarde van @age lager is dan 50, wordt weergegeven dat u jonger bent dan 50. Als geen van deze voorwaarden waar is, wordt Senior weergegeven.

Geneste IF…Else-instructies

Samengevat

  • Variabelen zijn het object dat als tijdelijke aanduiding fungeert.
  • Het instructieblok moet beginnen met het trefwoord BEGIN en eindigen met het trefwoord END.
  • Else is optioneel voor gebruik in de IF… ELSE-instructie
  • Het nesten van de SQL IF ELSE-voorwaarde in een andere IF…ELSE-instructie is ook mogelijk.