Microsoft SQL Server
Si ... otra cosa
Buscar..
Declaración única de FI
Como la mayoría de los otros lenguajes de programación, T-SQL también admite sentencias IF..ELSE.
Por ejemplo, en el siguiente ejemplo, 1 = 1
es la expresión, que se evalúa como Verdadero y el control ingresa en el bloque BEGIN..END
y la instrucción Imprimir imprime la cadena 'One is equal to One'
IF ( 1 = 1) --<-- Some Expression
BEGIN
PRINT 'One is equal to One'
END
Múltiples declaraciones de IF
Podemos usar múltiples declaraciones IF para verificar múltiples expresiones totalmente independientes unas de otras.
En el siguiente ejemplo, se evalúa la expresión de cada instrucción IF
y, si es verdadera, se ejecuta el código dentro del bloque BEGIN...END
. En este ejemplo en particular, las expresiones Primera y Tercera son verdaderas y solo se ejecutarán esas declaraciones impresas.
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
Una sola declaración IF..ELSE
En una sola instrucción IF..ELSE
, si la expresión se evalúa como Verdadero en la instrucción IF
, el control ingresa en el primer bloque BEGIN..END
y solo se ejecuta el código dentro de ese bloque, el bloque Else simplemente se ignora.
Por otro lado, si la expresión se evalúa como False
el bloque ELSE BEGIN..END
se ejecuta y el control nunca ingresa en el primer bloque BEGIN..END
.
En el siguiente ejemplo, la expresión se evaluará como falsa y el bloque Else se ejecutará imprimiendo la cadena '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
Múltiples IF ... ELSE con declaraciones ELSE finales
Si tenemos varias declaraciones IF...ELSE IF
, pero también queremos ejecutar algún fragmento de código si ninguna de las expresiones se evalúa como Verdadero, entonces podemos simplemente agregar un bloque ELSE
final que solo se ejecuta si ninguna de las IF
o ELSE IF
expresiones ELSE IF
se evalúan como verdaderas.
En el siguiente ejemplo, ninguna de las expresiones IF
o ELSE IF
son verdaderas, por lo que solo se ejecuta el bloque ELSE
y se imprime '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
Múltiples declaraciones de IF ... ELSE
En la mayoría de los casos, necesitamos verificar varias expresiones y realizar acciones específicas basadas en esas expresiones. Esta situación se maneja utilizando varias declaraciones IF...ELSE IF
.
En este ejemplo, todas las expresiones se evalúan de arriba a abajo. Tan pronto como una expresión se evalúa como verdadera, se ejecuta el código dentro de ese bloque. Si ninguna expresión se evalúa como verdadera, nada se ejecuta.
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