Cómo utilizar la instrucción IF ... ELSE en SQL Server

Una declaración condicional IF… ELSE incluida en muchos lenguajes de programación. SI… ELSE funciona con una expresión booleana que da como resultado VERDADERO o FALSO. Además, se pueden realizar diferentes acciones sobre los resultados de las expresiones booleanas.

IF… ELSE en SQL Server se usa para verificar la expresión y en base a los resultados (VERDADERO o FALSO) ejecutar otro bloque de sentencias SQL.

Sentencia CASE vs IF

Los desarrolladores de bases de datos se confunden entre las declaraciones CASE e IF. Por lo tanto, es importante comprender la diferencia y los casos de uso. Otros lenguajes de programación utilizan la instrucción SWITCH en lugar de CASE.

1. IF es una declaración lógica para controlar el flujo del lote, mientras que la declaración CASE determina el valor que se utilizará en una columna.
2. CASE se puede usar dentro de UPDATE / SELECT / ORDER BY para determinar un valor, mientras que IF no se puede usar.

BEGIN… END Bloque

El bloque BEGIN ... END ejecuta la instrucción SQL definida en orden secuencial. Como resultado, este bloque combina declaraciones y las ejecuta en un orden fijo.

BEGIN    SQL Statement 1     SQL Statement 2    SQL Statement 3END

Declaración IF ... ELSE

Además, IF… ELSE funciona en T-SQL de manera similar a otros lenguajes de programación. Demostremos los diferentes casos de uso.

Tenga en cuenta que la comparación dentro de la declaración IF se realiza utilizando = (signo igual simple) en T-SQL a diferencia de == (doble signo igual) en otros lenguajes de programación.

1.

Declaración IF única

La sentencia IF incluye un solo bloque de BEGIN… END. Si la condición booleana devuelve TRUE, se ejecutan las declaraciones dentro de BEGIN… END. De lo contrario, el bloque BEGIN… END se omite por completo.

En este ejemplo, la comparación de cadenas se evalúa como VERDADERO, por lo tanto, se ejecutan las declaraciones dentro de un bloque.

IF ( 'Tech' = 'Tech' ) -- Returns TRUE Or FALSEBEGIN -- Executed If TRUE    PRINT 'Test-1'    PRINT 'Test-2'END -- Skipped If False

Cómo utilizar IF ... ELSE en SQL Server_1

En el siguiente ejemplo, la comparación se evalúa como falsa, por lo tanto, se omiten las declaraciones dentro de un bloque.

IF ( 1 = 0 ) -- Returns TRUE or FALSEBEGIN -- Executed If TRUE    Print 'Test-1'    Print 'Test-2'END 

Cómo usar IF ... ELSE en SQL Server_2

En los siguientes ejemplos, se demuestra el uso de variables dentro de la declaración IF. Podemos probar la coincidencia escalar o de valores múltiples con IN cláusula. Si uno de los valores coincide con la cláusula IN, la declaración IF se evalúa como VERDADERO.

DECLARE @Year as INT = YEAR(GETDATE());IF @Year = 2019BEGIN    PRINT 'Yes, we are in 2019'ENDGODECLARE @Year as INT = YEAR(GETDATE());IF @Year IN (2019, 2020, 2021) -- (@Year = 2019 OR @Year = 2020 OR @Year = 2021)BEGIN    PRINT 'Yes, we are In';END

Cómo usar IF ... ELSE en SQL Server_3

2.

Declaración única IF… ELSE

Demostrando una sola declaración IF… ELSE. Si la condición se evalúa como CIERTO en la instrucción IF, se ejecuta la instrucción dentro del primer bloque BEGIN… END.

Si la condición se evalúa como FALSO entonces el control se pasa a DEMÁS bloque y segundo bloque BEGIN… END después de que se ejecute ELSE.

Siguiendo consultas usando IF… ELSE para evaluar una condición y si el resultado es TRUE, entonces se ejecuta el primer bloque de código. De lo contrario, el control se pasa al bloque ELSE.

IF ( 1 = 0 ) --Returns TRUE or FALSEBEGIN -- If TRUE    Print 'You are in IF block'   END ELSE -- If FALSEBEGIN    PRINT 'You are in ELSE block'ENDDECLARE @Year as INT = YEAR(GETDATE());IF @Year IN (2019, 2020, 2021) -- (@Year = 2019 OR @Year = 2020 OR @Year = 2021)BEGIN    PRINT 'Yes, we are In';ENDELSEBEGIN    PRINT 'Skipped';END

Cómo usar IF ... ELSE en SQL Server_4

3.

Declaración múltiple IF… ELSE

Para muchas condiciones, podemos usar varios bloques IF… ELSE con una declaración ELSE final (opcional). Si alguna de las condiciones se evalúa como TRUE, se omiten otros bloques ELSE… IF y ELSE. Si ninguno de los bloques IF… ELSE es TRUE, el control se pasa al bloque ELSE final.

En los ejemplos siguientes, podemos ver que el segundo bloque IF… ELSE se evalúa como VERDADERO, omitiendo así todas las demás condiciones.

DECLARE @Number as INT = 100;IF (@Number = 101)BEGIN    Print 'Number is 101'; --FalseENDELSE IF (@Number = 100)BEGIN    Print 'Number is 100'; --TrueENDELSE IF (@Number = 102)BEGIN    PRINT 'Number is 102'; --SkippedENDELSEBEGIN    PRINT 'Number is out of scope'; --SkippedEND

Cómo usar IF ... ELSE en SQL Server_5

Resumen

Sobre todo, hemos aprendido a usar la instrucción condicional IF..ELSE en SQL Server, incluidos varios ejemplos. Si le gusta este artículo, es posible que le gusten los archivos de la base de datos de Tech-Recipes para aprender más cosas útiles.

5/5 - (1 voto)
blank

Correo Total

Nuestro sitio web tiene como objetivo ofrecer toda la asistencia necesaria para deshacerse de todos los problemas a los que se enfrenta un usuario en su vida diaria mientras trabaja con cualquiera de los productos técnicos. Somos un equipo de soporte técnico muy consciente de la angustia y el sufrimiento que uno tiene que atravesar debido a fallas técnicas y fallas durante las horas impares del día.

Descubre más contenido

Subir