Microsoft SQL Server
SINON
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