SQL Server IF…ELSE Feltétel nyilatkozat: T-SQL Select Query példa

Miért van szükség feltételes nyilatkozatokra?

Az SQL-kiszolgáló feltételes utasításai segítenek a különböző feltételekhez különböző logikák és műveletek meghatározásában. Lehetővé teszi különböző műveletek végrehajtását az utasításban meghatározott feltételek alapján. A valós életben sok cselekvést hajt végre valamilyen más tevékenység vagy helyzet kimenetelétől függően.

Néhány valós idejű példa az SQL esetutasításra:

  • Ha holnap esik az eső, tervezek egy kirándulást.
  • Ha a repülőjegyek 400 dollár alatt vannak a városomból, akkor Európába megyek nyaralni, különben valamelyik közeli turistahelyet részesítem előnyben.

Itt láthatja, hogy egy művelet, például a fenti Road Trip, az feltételesen függő egy másik tevékenység eredményére, amely „esik-e vagy sem holnap!”

Hasonlóképpen, az MS SQL is lehetőséget biztosít a T-SQL utasítás feltételes végrehajtására.

IF… Else utasítás az SQL Serverben

In MS SQL, HA MÁS egyfajta Feltételes nyilatkozat.

Bármely T-SQL utasítás feltételesen végrehajtható a használatával HA MÁS.

Az alábbi ábra bemutatja az IF ELSE funkciót az SQL szerverben:

Hogyan működik az If és az Else
Hogyan működik ha és más
  • Ha az állapot úgy értékelődik Igaz, majd a T-SQL utasításokat követi IF feltétel az SQL szerverben végrehajtásra kerül.
  • Ha az állapot úgy értékelődik Hamis, majd a T-SQL utasításokat követi ELSE kulcsszó végrehajtásra kerül.
  • Ha az IF T-SQL utasítások vagy az ELSE T-SQL utasítások végrehajtásra kerülnek, akkor a többi feltétel nélküli T-SQL utasítás végrehajtása folytatódik.

IF… Else Szintaxis és szabályok az SQL-ben

Syntax:

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

Szabályok:

  • A feltétel legyen Logikai kifejezés, azaz feltétel kiértékeléskor logikai értéket eredményez.
  • HA MÁS nyilatkozat be SQL feltételesen kezelhet egyetlen T-SQL utasítást vagy T-SQL utasítások blokkját.
  • Az utasításblokk a BEGIN kulcsszóval kezdődik, és az END kulcsszóval záruljon.
  • A BEGIN és END használata segít az SQL szervernek azonosítani a végrehajtandó utasításblokkot, és elválasztani a többi T-SQL utasítástól, amelyek nem részei az IF…ELSE T-SQL blokknak.
  • Az ELSE nem kötelező.

IF…ELSE a logikai kifejezés egyetlen numerikus értékével.

Állapot: IGAZ

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

IF…ELSE a logikai kifejezés egyetlen numerikus értékével

Állapot: HAMIS

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

IF…ELSE a logikai kifejezés egyetlen numerikus értékével

Feltevés: Tételezzük fel, hogy a táblázat a következő "Guru99" két oszloppal és négy sorral az alábbiak szerint:

IF…ELSE a logikai kifejezés egyetlen numerikus értékével

Használni fogjuk "Guru99" táblázat a további példákban

IF…ELSE a Boolean kifejezés változójával.

Állapot: IGAZ

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 a Boolean Expression változóval

Állapot: HAMIS

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 a Boolean Expression változóval

IF…ELSE a Begin End funkcióval

Állapot: IGAZ

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 a Begin End funkcióval

Állapot: HAMIS

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 a Begin End funkcióval

IF utasítás a Nincs más elemmel

Használhat IF utasítást SQL-ben ELSE rész nélkül. Ne feledje, hogy kijelentettük, hogy az ELSE rész nem kötelező. Például:

DECLARE @Course_ID INT = 2

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

A következőket nyomtatja ki:

IF utasítás a Nincs más elemmel

A hamis feltétel végrehajtása nem ad kimenetet. Fontolja meg a következő lekérdezést

DECLARE @Course_ID INT = 2

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

Az eredmény az

IF utasítás a Nincs más elemmel

Beágyazott IF…Else nyilatkozatok

eltérően más programozási nyelvek, nem adhat hozzá ELSE IF utasítást egy IF ELSE feltételhez az SQL-ben. Ez az oka annak, hogy az IF ELSE szót beágyazhatja az SQL lekérdezési utasításokba. Az alábbiakban látható:

 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;
  • Ebben a példában a kód akkor jelenik meg, ha a @age értéke 18 év alatti.
  • Ha nem, akkor az ELSE rész végrehajtásra kerül. Az ElSE rész beágyazott IF…ELSE-t tartalmaz.
  • Ha az @age értéke 50 alatt van, akkor az Ön 50 alatti vagy. Ha a fenti feltételek egyike sem teljesül, a kód Seniort fog kiírni.

Beágyazott IF…Else nyilatkozatok

Összegzésként

  • A változók azok az objektumok, amelyek helyőrzőként működnek.
  • Az utasításblokk a BEGIN kulcsszóval kezdődik, és az END kulcsszóval záruljon.
  • Az Else használata nem kötelező az IF… ELSE utasításban
  • Az SQL IF ELSE feltétel beágyazása egy másik IF…ELSE utasításba is lehetséges.