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:

Cómo funciona si y lo contrario
¿Cómo funciona si y más?
  • 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'

IF…ELSE con el único valor numérico en expresión booleana

Condición: FALSO

IF (1=2)
PRINT 'IF STATEMENT: CONDITION IS TRUE'
ELSE
PRINT 'ELSE STATEMENT: CONDITION IS FALSE'

IF…ELSE con el único valor numérico en expresión booleana

Suposición: Supongamos que tienes la tabla como 'Gurú99' con dos columnas y cuatro filas como se muestra a continuación:

IF…ELSE con el único valor numérico en expresión booleana

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

IF...ELSE con la variable en expresión booleana

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

IF...ELSE con la variable en expresión booleana

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

SI...ELSE con Inicio Fin

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

SI...ELSE con Inicio Fin

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:

Declaración IF sin más

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

Declaración IF sin más

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.

Declaraciones anidadas IF...Else

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.