Declaración de condición IF...ELSE de SQL Server: Ejemplo de consulta de selección de T-SQL
¿Por qué necesitas declaraciones condicionales?
Las declaraciones condicionales en el servidor SQL le ayudan a definir diferentes lógicas y acciones para diferentes condiciones. Le permite realizar diferentes acciones según las condiciones definidas dentro de la declaración. En la vida real, realizas muchas acciones que dependen del resultado de alguna otra actividad o situación.
Algunos ejemplos en tiempo real de declaración de caso SQL son:
- Si mañana llueve, planificaré un viaje por carretera.
- Si los billetes de avión cuestan menos de 400 dólares desde mi ciudad, entonces me iré de vacaciones a Europa; de lo contrario, preferiré algún lugar turístico cercano.
Aquí puedes ver que una acción, como Road Trip arriba, es condicionalmente dependiente sobre el resultado de otra actividad que es “¡si lloverá o no mañana!”
De manera similar, MS SQL también proporciona la capacidad de ejecutar declaraciones T-SQL de forma condicional.
Declaración IF... Else en SQL Server
In MS SQL, SI… DE LO CONTRARIO es un tipo de Sentencia condicional.
Cualquier declaración T-SQL se puede ejecutar condicionalmente usando SI… DE LO CONTRARIO.
La siguiente figura explica IF ELSE en el servidor SQL:
- Si la condición se evalúa como Cierto, luego declaraciones T-SQL seguidas de IF Se ejecutará la condición en el servidor SQL.
- Si la condición se evalúa como Falso luego declaraciones T-SQL seguidas de ELSE Se ejecutará la palabra clave.
- Una vez que se ejecutan las sentencias IF T-SQL o ELSE T-SQL, otras sentencias T-SQL incondicionales continúan ejecutándose.
IF… Else Sintaxis y reglas en SQL
Sintaxis:
IF <Condition> {Statement | Block_of_statement} [ ELSE {Statement | Block_of_statement}]
Reglas:
- La condición debe ser Expresión booleana, Es decir, La condición da como resultado un valor booleano cuando se evalúa.
- Declaración IF ELSE en SQL puede manejar condicionalmente una sola declaración T-SQL o un bloque de declaraciones T-SQL.
- El bloque de declaración debe comenzar con la palabra clave BEGIN y cerrar con la palabra clave END.
- El uso de BEGIN y END ayuda al servidor SQL a identificar el bloque de declaraciones que debe ejecutarse y separarlo del resto de las declaraciones T-SQL que no forman parte del bloque IF...ELSE T-SQL.
- MÁS es opcional.
IF…ELSE con el único valor numérico en expresión booleana.
Condición: VERDADERO
IF (1=1) PRINT 'IF STATEMENT: CONDITION IS TRUE' ELSE PRINT 'ELSE STATEMENT: CONDITION IS FALSE'
Condición: FALSO
IF (1=2) PRINT 'IF STATEMENT: CONDITION IS TRUE' ELSE PRINT 'ELSE STATEMENT: CONDITION IS FALSE'
Suposición: Supongamos que tienes la tabla como 'Gurú99' con dos columnas y cuatro filas como se muestra a continuación:
Usaremos 'Gurú99' tabla en más ejemplos
IF…ELSE con la variable en expresión booleana.
Condición: VERDADERO
DECLARE @Course_ID INT = 4 IF (@Course_ID = 4) Select * from Guru99 where Tutorial_ID = 4 ELSE Select * from Guru99 where Tutorial_ID != 4
Condición: FALSO
DECLARE @Course_ID INT = 4 IF (@Course_ID != 4) Select * from Guru99 where Tutorial_ID = 4 ELSE Select * from Guru99 where Tutorial_ID != 4
SI...ELSE con Inicio Fin
Condición: VERDADERO
DECLARE @Course_ID INT = 2 IF (@Course_ID <=2) BEGIN Select * from Guru99 where Tutorial_ID = 1 Select * from Guru99 where Tutorial_ID = 2 END ELSE BEGIN Select * from Guru99 where Tutorial_ID = 3 Select * from Guru99 where Tutorial_ID = 4 END
Condición: FALSO
DECLARE @Course_ID INT = 2 IF (@Course_ID >=3) BEGIN Select * from Guru99 where Tutorial_ID = 1 Select * from Guru99 where Tutorial_ID = 2 END ELSE BEGIN Select * from Guru99 where Tutorial_ID = 3 Select * from Guru99 where Tutorial_ID = 4 END
Declaración IF sin más
Puede utilizar una declaración IF en SQL sin una parte ELSE. Recuerde que dijimos que la parte ELSE es opcional. Por ejemplo:
DECLARE @Course_ID INT = 2 IF (@Course_ID <=2) Select * from Guru99 where Tutorial_ID = 1
Imprime lo siguiente:
La ejecución de la condición falsa no dará ningún resultado. Considere la siguiente consulta
DECLARE @Course_ID INT = 2 IF (@Course_ID <=0) Select * from Guru99 where Tutorial_ID = 1
El resultado
Declaraciones anidadas IF...Else
A diferencia de otros lenguajes de programación, no puede agregar una declaración ELSE IF dentro de una condición IF ELSE en SQL. Es por eso que puede anidar IF ELSE en declaraciones de consulta SQL. Se demuestra a continuación:
DECLARE @age INT; SET @age = 60; IF @age < 18 PRINT 'underage'; ELSE BEGIN IF @age < 50 PRINT 'You are below 50'; ELSE PRINT 'Senior'; END;
- En este ejemplo, el código imprimirá underage si el valor de @age es inferior a 18.
- De lo contrario, se ejecutará la parte ELSE. La parte ElSE tiene un IF…ELSE anidado.
- Si el valor de @age es inferior a 50, se imprimirá Usted está por debajo de 50. Si ninguna de estas condiciones es verdadera, el código se imprimirá Senior.
Resum
- Las variables son el objeto que actúa como marcador de posición.
- El bloque de declaración debe comenzar con la palabra clave BEGIN y cerrar con la palabra clave END.
- De lo contrario, su uso es opcional en la declaración IF... ELSE
- También es posible anidar la condición SQL IF ELSE en otra declaración IF...ELSE.