Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Fonctionnement de l'instruction IF dans SQL Server

La plupart (probablement tous ) les langages de programmation incluent une certaine forme de IF instruction qui permet aux programmeurs d'écrire du code conditionnel. C'est-à-dire un code qui ne s'exécutera que si une certaine condition est vraie.

C'est un concept très simple. En gros, ça se passe comme ça :

"Si ceci, fais cela."

La plupart des langages l'appellent simplement IF , mais certains ont leur propre torsion sur le nom (par exemple, dans ColdFusion/CFML, il s'appelle CFIF ).

Dans tous les cas, ils font essentiellement la même chose.

Dans SQL Server (ou plus précisément, son langage de programmation T-SQL), il s'appelle IF .

Exemple

Voici un exemple de base pour montrer comment le IF l'instruction fonctionne.

IF 1 < 2 SELECT 'True';

Résultat :

True

Dans ce cas, l'expression à évaluer est 1 < 2 . Il est vrai que 1 est inférieur à 2 donc le SELECT instruction a été exécutée et True a été renvoyé.

Cependant, si l'expression est fausse, rien ne se passera.

L'exemple suivant le démontre :

IF 1 > 2 SELECT 'True';

Résultat :

Commands completed successfully.

Tout ce que SQL Server m'a dit, c'est que la commande s'est terminée avec succès. Rien d'autre n'a été renvoyé, car rien d'autre n'a été spécifié.

L'instruction SI… SINON

Dans SQL Server, le IF l'instruction est fournie avec un ELSE facultatif , qui permet de proposer une alternative, dans le cas où l'expression retourne false.

Par conséquent, c'est comme dire "SI ceci, fais ceci, SINON, fais ceci".

Dans ce cas, nous pouvons ajouter l'optionnel ELSE au IF déclaration, de sorte qu'il devient un IF... ELSE déclaration.

IF 1 > 2
       SELECT 'True';
ELSE 
       SELECT 'False';

Résultat :

False

Maintenant, nous obtenons également un résultat lorsque l'expression est fausse.

Instructions IF imbriquées

L'une des grandes choses à propos de IF déclarations est que vous pouvez les imbriquer. Autrement dit, vous pouvez ajouter plus de IF déclarations à l'intérieur de votre original, et plus à l'intérieur de ceux-ci, etc.

Vous pouvez imbriquer autant de IF déclarations comme vous le souhaitez. Vous n'êtes limité que par la quantité de mémoire disponible.

Voici un exemple d'imbrication d'un IF déclaration à l'intérieur d'une autre.

DECLARE @bankBalance int = 123;
IF @bankBalance > 100
    IF @bankBalance > 150
        SELECT 'Rich!';
    ELSE
        SELECT 'Wealthy';
ELSE 
    SELECT 'Poor';

Résultat :

Wealthy

IF… ELSE IF Statements

Vous pouvez également l'utiliser comme un IF... ELSE IF déclaration.

DECLARE @bankBalance int = 123;
IF @bankBalance > 150
    SELECT 'Rich!';
ELSE IF @bankBalance > 100
    SELECT 'Wealthy';
ELSE
    SELECT 'Poor';

Résultat :

Wealthy