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


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow