Recherche…


Déclaration IF unique

Comme la plupart des autres langages de programmation, T-SQL prend également en charge les instructions IF..ELSE.

Par exemple, dans l'exemple ci-dessous, 1 = 1 est l'expression qui correspond à True et le contrôle entre le bloc BEGIN..END et l'instruction Print imprime la chaîne 'One is equal to One'

IF ( 1 = 1)  --<-- Some Expression 
 BEGIN
   PRINT 'One is equal to One'
 END

Déclarations IF multiples

Nous pouvons utiliser plusieurs instructions IF pour vérifier plusieurs expressions totalement indépendantes les unes des autres.

Dans l'exemple ci-dessous, l'expression de chaque instruction IF est évaluée et, si elle est vraie, le code BEGIN...END dans le bloc BEGIN...END est exécuté. Dans cet exemple particulier, les expressions First et Third sont true et seules ces instructions print seront exécutées.

IF (1 = 1)  --<-- Some Expression      --<-- This is true 
BEGIN
    PRINT 'First IF is True'           --<-- this will be executed
END

IF (1 = 2)  --<-- Some Expression 
BEGIN
    PRINT 'Second IF is True'
END

IF (3 = 3)  --<-- Some Expression        --<-- This true 
BEGIN
    PRINT 'Thrid IF is True'             --<-- this will be executed
END

Instruction IF..ELSE unique

Dans une seule instruction IF..ELSE , si l'expression est IF..ELSE sur True dans l'instruction IF , le contrôle entre le premier bloc BEGIN..END et seul le code BEGIN..END dans ce bloc est exécuté. Sinon, le bloc Else est simplement ignoré.

D'autre part, si l'expression est évaluée à False le bloc ELSE BEGIN..END est exécuté et le contrôle n'entre jamais dans le premier bloc BEGIN..END .

Dans l'exemple ci-dessous, l'expression sera évaluée à false et le bloc Else sera exécuté en imprimant la chaîne 'First expression was not true'

IF ( 1 <> 1)  --<-- Some Expression
 BEGIN
     PRINT 'One is equal to One'
 END
ELSE 
 BEGIN
     PRINT 'First expression was not true'
 END

Multiple IF ... ELSE avec les instructions ELSE finales

Si nous avons plusieurs instructions IF...ELSE IF mais que nous voulons également exécuter un morceau de code si aucune des expressions n'est évaluée à True, nous pouvons simplement ajouter un bloc ELSE final qui ne sera exécuté que si aucun des IF ou ELSE IF expressions sont évaluées à true.

Dans l'exemple ci-dessous, aucune des expressions IF ou ELSE IF n'est vraie. Par conséquent, seul le bloc ELSE est exécuté et affiche 'No other expression is true'

IF ( 1 = 1 + 1 )
    BEGIN
       PRINT 'First If Condition'
    END 
ELSE IF (1 = 2)
    BEGIN
        PRINT 'Second If Else Block'
    END
ELSE IF (1 = 3)
    BEGIN
        PRINT 'Third If Else Block'
    END
ELSE 
    BEGIN
        PRINT 'No other expression is true'  --<-- Only this statement will be printed
    END

Instructions IF multiples ... ELSE

Le plus souvent, nous devons vérifier plusieurs expressions et prendre des mesures spécifiques en fonction de ces expressions. Cette situation est gérée à l'aide de plusieurs instructions IF...ELSE IF .

Dans cet exemple, toutes les expressions sont évaluées de haut en bas. Dès qu'une expression est évaluée à true, le code à l'intérieur de ce bloc est exécuté. Si aucune expression n'est évaluée à true, rien n'est exécuté.

IF (1 = 1 + 1)
BEGIN
    PRINT 'First If Condition'
END 
ELSE IF (1 = 2)
BEGIN
    PRINT 'Second If Else Block'
END
ELSE IF (1 = 3)
BEGIN
    PRINT 'Third If Else Block'
END
ELSE IF (1 = 1)      --<-- This is True
BEGIN
    PRINT 'Last Else Block'  --<-- Only this statement will be printed
END


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow