SQL Server IF...ELSE Declarație de condiție: Exemplu de interogare de selectare T-SQL

De ce aveți nevoie de declarații condiționale?

Instrucțiunile condiționate din serverul SQL vă ajută să definiți diferite logici și acțiuni pentru diferite condiții. Vă permite să efectuați diferite acțiuni în funcție de condițiile definite în declarație. În viața reală, efectuați multe acțiuni care depind de rezultatul unei alte activități sau situații.

Câteva exemple în timp real de declarație case SQL sunt:

  • Dacă mâine plouă, voi plănui o excursie.
  • Dacă biletele de avion sunt mai puțin de 400 USD din orașul meu, atunci voi pleca în vacanță în Europa, altfel voi prefera un loc turistic din apropiere.

Aici, puteți vedea că o acțiune, cum ar fi Road trip de mai sus, este dependentă condiționat pe rezultatul unei alte activități care este „dacă va ploua sau nu mâine!”

În mod similar, MS SQL oferă, de asemenea, capacitatea de a executa instrucțiuni T-SQL în mod condiționat.

IF... Else declarație în SQL Server

In MS SQL, DACA... ALTE este un tip de Declarație condiționată.

Orice instrucțiune T-SQL poate fi executată condiționat folosind DACA... ALTE.

Figura de mai jos explică IF ELSE în serverul SQL:

Cum funcționează dacă și altceva
Cum funcționează dacă și altfel
  • Dacă starea se evaluează la Adevărat, apoi instrucțiuni T-SQL urmate de IF condiția din serverul SQL va fi executată.
  • Dacă starea se evaluează la Fals, apoi instrucțiuni T-SQL urmate de ELSE cuvântul cheie va fi executat.
  • Odată ce sunt executate fie instrucțiunile IF T-SQL, fie instrucțiunile ELSE T-SQL, atunci alte instrucțiuni T-SQL necondiționate continuă execuția.

IF... Else Sintaxă și reguli în SQL

Sintaxă:

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

reguli:

  • Condiția ar trebui să fie Expresie booleanăadică, condiția are ca rezultat o valoare booleană atunci când este evaluată.
  • IF ELSE declarația în SQL poate gestiona condiționat o singură instrucțiune T-SQL sau un bloc de instrucțiuni T-SQL.
  • Blocul de declarație ar trebui să înceapă cu cuvântul cheie BEGIN și să se încheie cu cuvântul cheie END.
  • Utilizarea BEGIN și END ajută serverul SQL să identifice blocul de instrucțiuni care trebuie executat și să îl separe de restul instrucțiunilor T-SQL care nu fac parte din blocul T-SQL IF...ELSE.
  • ELSE este opțional.

IF...ELSE cu singura valoare numerică din Boolean Expression.

Stare: ADEVĂRAT

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

IF...ELSE cu singura valoare numerică din Boolean Expression

Stare: FALS

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

IF...ELSE cu singura valoare numerică din Boolean Expression

Presupunere: Să presupunem că ai masa ca „Guru99” cu două coloane și patru rânduri, așa cum este afișat mai jos:

IF...ELSE cu singura valoare numerică din Boolean Expression

Noi vom folosi „Guru99” tabel în alte exemple

IF...ELSE cu variabila din Boolean Expression.

Stare: ADEVĂRAT

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 cu variabila din Boolean Expression

Stare: FALS

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 cu variabila din Boolean Expression

IF...ELSE cu Begin End

Stare: ADEVĂRAT

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 cu Begin End

Stare: FALS

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 cu Begin End

IF instrucțiune cu No Else

Puteți utiliza o instrucțiune IF în SQL fără o parte ELSE. Amintiți-vă că am afirmat că partea ELSE este opțională. De exemplu:

DECLARE @Course_ID INT = 2

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

Tipărește următoarele:

IF instrucțiune cu No Else

Executarea condiției false nu va da rezultate. Luați în considerare următoarea interogare

DECLARE @Course_ID INT = 2

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

Rezultatul este

IF instrucțiune cu No Else

Instrucțiuni IF...Else imbricate

Spre deosebire de alte limbaje de programare, nu puteți adăuga o instrucțiune ELSE IF într-o condiție IF ELSE în SQL. Acesta este motivul pentru care puteți imbrica IF ELSE în instrucțiunile de interogare SQL. Este demonstrat mai jos:

 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;
  • În acest exemplu, codul se va imprima minor dacă valoarea @age este sub 18.
  • Dacă nu, partea ELSE va fi executată. Partea ElSE are un imbricat IF...ELSE.
  • Dacă valoarea @agerii este sub 50, se va tipări Tu ești sub 50. Dacă niciuna dintre aceste condiții nu este adevărată, codul va tipări Senior.

Instrucțiuni IF...Else imbricate

Rezumat

  • Variabilele sunt obiectul care acționează ca substituent.
  • Blocul de declarație ar trebui să înceapă cu cuvântul cheie BEGIN și să se încheie cu cuvântul cheie END.
  • Else este opțional de utilizat în instrucțiunea IF... ELSE
  • Imbricarea condiției SQL IF ELSE într-o altă instrucțiune IF...ELSE este de asemenea posibilă.