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:
- 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'
Stare: FALS
IF (1=2) PRINT 'IF STATEMENT: CONDITION IS TRUE' ELSE PRINT 'ELSE STATEMENT: CONDITION IS FALSE'
Presupunere: Să presupunem că ai masa ca „Guru99” cu două coloane și patru rânduri, așa cum este afișat mai jos:
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
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 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
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 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:
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
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.
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ă.