Instruction de condition SQL Server IF…ELSE : exemple de requête de sélection T-SQL

Pourquoi avez-vous besoin d’instructions conditionnelles ?

Les instructions conditionnelles dans le serveur SQL vous aident à définir différentes logiques et actions pour différentes conditions. Il vous permet d'effectuer différentes actions en fonction des conditions définies dans l'instruction. Dans la vraie vie, vous effectuez de nombreuses actions en fonction du résultat d’une autre activité ou situation.

Voici quelques exemples en temps réel d'instructions de cas SQL :

  • S'il pleut demain, j'envisagerai un road trip.
  • Si les billets d'avion coûtent moins de 400 $ au départ de ma ville, alors je partirai en vacances en Europe, sinon je préférerai un lieu touristique à proximité.

Ici, vous pouvez voir qu'une action, comme Road trip ci-dessus, est conditionnellement dépendant sur le résultat d’une autre activité qui est « s’il pleuvra ou pas demain ! »

De même, MS SQL offre également la possibilité d'exécuter une instruction T-SQL de manière conditionnelle.

SI… Sinon, instruction dans SQL Server

In MS SQL, SINON est un type de Instruction conditionnelle.

Toute instruction T-SQL peut être exécutée conditionnellement en utilisant SINON.

La figure ci-dessous explique IF ELSE dans le serveur SQL :

Comment fonctionne si et autrement
Comment fonctionne si et sinon
  • Si la condition est évaluée à Vrai, puis les instructions T-SQL suivies de IF La condition dans le serveur SQL sera exécutée.
  • Si la condition est évaluée à Faux puis les instructions T-SQL suivies de AUTRE Le mot-clé sera exécuté.
  • Une fois que les instructions IF T-SQL ou ELSE T-SQL sont exécutées, les autres instructions T-SQL inconditionnelles continuent leur exécution.

SI… Sinon Syntaxe et règles en SQL

syntaxe:

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

Règles :

  • L'état doit être Expression booléenne, c'est à dire, La condition donne une valeur booléenne une fois évaluée.
  • Instruction IF ELSE dans SQL peut gérer de manière conditionnelle une seule instruction T-SQL ou un bloc d'instructions T-SQL.
  • Le bloc d'instruction doit commencer par le mot-clé BEGIN et se terminer par le mot-clé END.
  • L'utilisation de BEGIN et END aide le serveur SQL à identifier le bloc d'instructions qui doit être exécuté et à le séparer du reste des instructions T-SQL qui ne font pas partie du bloc IF…ELSE T-SQL.
  • ELSE est facultatif.

IF…ELSE avec la seule valeur numérique dans l’expression booléenne.

Condition : VRAI

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

IF…ELSE avec la seule valeur numérique dans l'expression booléenne

Condition : FAUX

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

IF…ELSE avec la seule valeur numérique dans l'expression booléenne

Supposition: Supposons que vous ayez la table comme 'Guru99' avec deux colonnes et quatre lignes comme indiqué ci-dessous :

IF…ELSE avec la seule valeur numérique dans l'expression booléenne

Nous utiliserons 'Guru99' tableau dans d'autres exemples

IF…ELSE avec la variable dans l’expression booléenne.

Condition : VRAI

DECLARE @Course_ID INT = 4

IF (@Course_ID = 4)
Select * from Guru99 where Tutorial_ID = 4
ELSE
Select * from Guru99 where Tutorial_ID != 4

SI...ELSE avec la variable dans l'expression booléenne

Condition : FAUX

DECLARE @Course_ID INT = 4

IF (@Course_ID != 4)
Select * from Guru99 where Tutorial_ID = 4
ELSE
Select * from Guru99 where Tutorial_ID != 4

SI...ELSE avec la variable dans l'expression booléenne

SI…ELSE avec Début Fin

Condition : VRAI

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

SI...ELSE avec Début Fin

Condition : FAUX

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

SI...ELSE avec Début Fin

Instruction IF avec No Else

Vous pouvez utiliser une instruction IF dans SQL sans partie ELSE. N'oubliez pas que nous avons indiqué que la partie ELSE est facultative. Par exemple:

DECLARE @Course_ID INT = 2

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

Il imprime ce qui suit :

Instruction IF avec No Else

L’exécution de la condition fausse ne donnera aucun résultat. Considérez la requête suivante

DECLARE @Course_ID INT = 2

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

Le résultat est

Instruction IF avec No Else

Déclarations IF…Else imbriquées

Contrairement à d'autres langages de programmation, vous ne pouvez pas ajouter une instruction ELSE IF dans une condition IF ELSE dans SQL. C'est pourquoi vous pouvez imbriquer IF ELSE dans des instructions de requête SQL. Il est démontré ci-dessous :

 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;
  • Dans cet exemple, le code imprimera underage si la valeur de @age est inférieure à 18.
  • Sinon, la partie ELSE sera exécutée. La partie ElSE a un IF…ELSE imbriqué.
  • Si la valeur de @age est inférieure à 50, cela affichera Vous avez moins de 50 ans. Si aucune de ces conditions n'est vraie, le code affichera Senior.

Déclarations IF…Else imbriquées

Résumé

  • Les variables sont l'objet qui agit comme un espace réservé.
  • Le bloc d'instruction doit commencer par le mot-clé BEGIN et se terminer par le mot-clé END.
  • Else est facultatif à utiliser dans l’instruction IF… ELSE
  • L'imbrication de la condition SQL IF ELSE dans une autre instruction IF…ELSE est également possible.

Résumez cet article avec :