¿Por qué necesita declaraciones condicionales?
En la vida real, realizas muchas acciones que dependen del resultado de una acción o de alguna otra situación.
A continuación, se muestran algunos ejemplos en tiempo real:
- Si mañana llueve, planeo un viaje por carretera.
- Si los boletos de avión cuestan menos de $ 400 desde mi ciudad, entonces me voy de vacaciones a Europa o prefiero un lugar turístico cercano.
Aquí, ves una acción, como un viaje por carretera arriba depende de la condición otra actividad es el resultado de «¡si lloverá o no mañana!»
De manera similar, MS SQL brinda la capacidad de ejecutar una instrucción T-SQL de manera condicional.
En este tutorial, aprenderá:
SI … Otra declaración
En MS SQL, SI OTRO es una especie de Sentencia condicional.
Cualquier instrucción T-SQL se puede ejecutar condicionalmente usando SI OTRO.
La siguiente figura explica la declaración IF… ELSE
- Si la condición se evalúa para Cierto, luego declaraciones T-SQL y más allá DOS se ejecutará la palabra clave.
- Si la condición se evalúa Falso, luego declaraciones T-SQL y más allá DEMÁS se ejecutará la palabra clave.
- Una vez que se ejecutan las sentencias T-SQL IF o las sentencias T-SQL ELSE, proceden otras sentencias T-SQL incondicionales.
Sintaxis y reglas
Sintaxis:
IF <Condition> {Statement | Block_of_statement} [ ELSE {Statement | Block_of_statement}]
Reglas:
- La condición debe ser Expresión booleana, es decir, El valor booleano conduce a una condición cuando se evalúa.
- IF… ELSE puede manejar condicionalmente una sola declaración T-SQL o un bloque de declaraciones T-SQL.
- El bloque de instrucciones debe comenzar con una palabra clave BEGIN y cerrar con una palabra clave END.
- BEGIN y END ayudan al servidor SQL a identificar un bloque de instrucciones que debe ejecutarse y a separarlo del resto de las instrucciones T-SQL que no forman parte del bloque IF T T-SQL ELSE.
- ELSE es opcional.
SI… OTRO con el mismo 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: FLASE
IF (1=2) PRINT 'IF STATEMENT: CONDITION IS TRUE' ELSE PRINT 'ELSE STATEMENT: CONDITION IS FALSE'
Suposición: Suponga que tiene la mesa como ‘Guru99’ con dos columnas y cuatro filas como se muestra a continuación:
Usaremos ‘Guru99’ tabla en ejemplos adicionales
SI … OTRO 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: FLASE
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 … OTRO 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 de No Else
Puede utilizar la instrucción IF sin la parte ELSE. Recuerde que mencionamos 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:
Ninguna salida dará la condición falsa. Considere la siguiente pregunta
DECLARE @Course_ID INT = 2 IF (@Course_ID <=0) Select * from Guru99 where Tutorial_ID = 1
El resultado es
Incrustado SI … Otras declaraciones
A diferencia de otros lenguajes de programación, no puede agregar una instrucción ELSE IF en una instrucción IF… ELSE. Es por eso que puede incrustar OTRAS declaraciones. Mostrado 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 se imprimirá como menor de edad si el valor de @age es menor de 18.
- De lo contrario, se ejecutará la parte ELSE. La parte ElSE está incrustada IF… ELSE.
- Si el valor de @age es inferior a 50, se imprimirá Tiene menos de 50. Si no se cumple ninguna de estas condiciones, se imprimirá el código SEO.
Resumen:
- Las variables son el objeto que actúa como ocupante.
- El bloque de instrucciones debe comenzar con una palabra clave BEGIN y cerrar con una palabra clave END.
- Otra opción es para usar en la instrucción IF… ELSE
- Incrustar IF… ELSE en otro IF… también se puede hacer otra declaración.