SQL Server IF…ELSE Izjava uvjeta: Primjer T-SQL upita za odabir

Zašto su vam potrebne uvjetne izjave?

Uvjetne izjave u SQL poslužitelju pomažu vam da definirate različite logike i akcije za različite uvjete. Omogućuje vam izvođenje različitih radnji na temelju uvjeta definiranih unutar izjave. U stvarnom životu izvodite mnoge radnje ovisne o ishodu neke druge aktivnosti ili situacije.

Neki primjeri SQL iskaza slučaja u stvarnom vremenu su:

  • Ako sutra pada kiša, planirat ću putovanje.
  • Ako su karte za avion manje od 400 dolara iz mog grada, onda ću otići na odmor u Europu, inače ću radije izabrati neko obližnje turističko mjesto.

Ovdje možete vidjeti da je jedna radnja, kao što je Road trip gore uvjetno ovisan na ishod druge aktivnosti koja glasi "hoće li sutra padati kiša ili ne!"

Slično tome, MS SQL također pruža mogućnost uvjetnog izvršavanja T-SQL naredbe.

IF… Else izjava u SQL Serveru

In MS SQL, AKO…INAČE je vrsta Uvjetna izjava.

Svaki T-SQL iskaz može se izvršiti uvjetno koristeći AKO… DRUGO.

Donja slika objašnjava IF ELSE u SQL poslužitelju:

Kako funkcionira If and Else
Kako if and else radi
  • Ako se stanje ocijeni na Pravi, zatim T-SQL naredbe iza kojih slijedi IF uvjet u SQL poslužitelju bit će izvršen.
  • Ako se stanje ocijeni na Lažno, zatim T-SQL naredbe iza kojih slijedi JOŠ ključna riječ će se izvršiti.
  • Jednom, ili IF T-SQL naredba ili ELSE T-SQL naredba se izvrši, tada ostale bezuvjetne T-SQL naredbe nastavljaju s izvođenjem.

IF… Else Sintaksa i pravila u SQL-u

Sintaksa:

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

Pravila:

  • Uvjet bi trebao biti Booleov izraz, tj. uvjet rezultira Booleovom vrijednošću kada se procjenjuje.
  • IF ELSE izjava u SQL može uvjetno rukovati jednom T-SQL naredbom ili blokom T-SQL naredbi.
  • Blok izjave trebao bi započeti ključnom riječi BEGIN i zatvoriti ključnom riječi END.
  • Korištenje BEGIN i END pomaže SQL poslužitelju da identificira blok iskaza koji se treba izvršiti i odvoji ga od ostatka T-SQL iskaza koji nisu dio IF…ELSE T-SQL bloka.
  • ELSE nije obavezan.

IF…ILSE s jedinom numeričkom vrijednošću u Booleovom izrazu.

Uvjet: TRUE

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

IF…ILSE s jedinom numeričkom vrijednošću u Booleovom izrazu

Stanje: NETOČNO

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

IF…ILSE s jedinom numeričkom vrijednošću u Booleovom izrazu

Pretpostavka: Pretpostavimo da imate tablicu kao 'Guru99' s dva stupca i četiri retka kao što je prikazano u nastavku:

IF…ILSE s jedinom numeričkom vrijednošću u Booleovom izrazu

Koristit ćemo 'Guru99' tablicu u daljnjim primjerima

IF…ELSE s varijablom u Booleovom izrazu.

Uvjet: TRUE

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 s varijablom u Booleovom izrazu

Stanje: NETOČNO

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 s varijablom u Booleovom izrazu

IF…ELSE s Begin End

Uvjet: TRUE

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

IF...ELSE s Begin End

Stanje: NETOČNO

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...ELSE s Begin End

IF izjava s No Else

Možete koristiti naredbu IF u SQL-u bez dijela ELSE. Zapamtite da smo rekli da je ELSE dio neobavezan. Na primjer:

DECLARE @Course_ID INT = 2

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

Ispisuje sljedeće:

IF izjava s No Else

Izvršenje lažnog uvjeta neće dati izlaz. Razmotrite sljedeći upit

DECLARE @Course_ID INT = 2

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

Rezultat je

IF izjava s No Else

Ugniježđene IF…Else izjave

Za razliku od drugih programski jezici, ne možete dodati ELSE IF naredbu unutar IF ELSE uvjeta u SQL-u. Zbog toga možete ugnijezditi IF ELSE u izjave SQL upita. Dolje je prikazano:

 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;
  • U ovom primjeru, kod će ispisati maloljetnost ako je vrijednost @age ispod 18 godina.
  • Ako nije, ELSE dio će se izvršiti. ElSE dio ima ugniježđeni IF…ELSE.
  • Ako je vrijednost @age ispod 50, ovo će ispisati Vi ste ispod 50. Ako nijedan od ovih uvjeta nije istinit, kod će ispisati Senior.

Ugniježđene IF…Else izjave

rezime

  • Varijable su objekti koji djeluju kao rezervirano mjesto.
  • Blok izjave trebao bi započeti ključnom riječi BEGIN i zatvoriti ključnom riječi END.
  • Else nije obavezan za upotrebu u IF… ELSE naredbi
  • Također je moguće ugniježđivanje SQL IF ELSE uvjeta u drugu IF…ELSE naredbu.