SQL IF ELSE en transacciones

La instrucción SQL IF ELSE controla el flujo de ejecución en SQL Server. Se puede utilizar en procedimientos almacenados, funciones, activadores, etc. para ejecutar las instrucciones SQL en función de las condiciones especificadas.

En SQL IF…ELSE también se conoce como instrucción de flujo de control. Controla el flujo de ejecución. El uso de las sentencias IF… ELSE puede omitir las sentencias SQL en una determinada condición. La condición debe estar en expresión booleana, lo que significa que los resultados de la expresión de condición deben ser verdaderos o falsos. Cualquier T-SQL (Transact-SQL) se puede colocar en la declaración condicional IF…ELSE.

Sintaxis de la instrucción SQL IF ELSE

IF expresión booleana   
     {sentencias a ejecutar cuando la condición es VERDADERA} 
[ ELSE 
{sentencias a ejecutar cuando la condición es FALSA}]

Expresión booleana: una expresión booleana que devuelve VERDADERO o FALSO. Si la expresión booleana contiene una instrucción SELECT, debe estar entre paréntesis.

sentencia SQL: una o varias declaraciones que deben ejecutarse. Para incluir varias declaraciones, enciérrelas entre las palabras clave BEGIN y END.

El bloque ELSE es opcional. Si la expresión booleana con la sentencia IF devuelve FALSO, el control se pasa a la sentencia ELSE.

Si la condición en el bloque IF devuelve VERDADERO, entonces se ejecuta el bloque de instrucciones SQL después de la instrucción IF. Si la condición devuelve FALSO, entonces el control ejecuta el bloque ELSE si está presente, o sale de la instrucción IF.

Ejemplo SQL IF ELSE

El siguiente ejemplo demuestra la condición SQL IF ELSE

DECLARE @Precio INT = 10000, @costo INT = 7000;
IF @Precio > @costo
PRINT 'Aplica para venta.';
ELSE
PRINT 'Precio Menor que Costo.';

sql if else

En el ejemplo anterior, la condición IF @precio > @costOverifica si @precioes mayor que @costoThe @precio > @costodevuelve VERDADERO, por lo que se ejecutará la declaración debajo.

Cambiar el valor de cualquier variable afectará el resultado, como se muestra a continuación.

DECLARE @Precio INT = 10000, @costo INT = 11000;
IF @Precio > @costo
PRINT 'Aplica para venta.';
ELSE
PRINT 'Precio Menor que Costo.';

sql if else

Declaración SQL IF ELSE con consulta SELECT

El siguiente ejemplo usa la consulta SELECT para demostrar la condición SQL IF ELSE.

Ejemplo: IF ELSE con consulta SELECT

if (select AVG(Salario) from Empleado) > 7000
print 'El salario promedio es mayor a 7000';
else
print 'El salario promedio es menos de 7000';

sql if else con select
En el ejemplo anterior, la declaración IF contiene la consulta de selección entre paréntesis Select AVG(Salario) from Empleadoy verifica si es mayor que 7000 o no. Toda la condición es (select AVG(Salario) from Empleado) > 7000. Muestra el mensaje basado en el retorno VERDADERO o FALSO.

Declaración IF anidada

El siguiente ejemplo demuestra las declaraciones IF anidadas.
Ejemplo: sentencias IF anidadas

DECLARE @Estudiante INT = 90;

IF (@Estudiante > 90)
	BEGIN
		IF @Estudiante > 90
			PRINT 'A+';
		ELSE
			PRINT 'A-';
	END	
ELSE 
	PRINT 'Por debajo del Grado A'

En el ejemplo anterior, la primera condición IF contiene otra condición IF ELSE en el bloque. En la condición IF externa, la variable @Estudiantees mayor que 90, luego se ejecuta en la segunda condición IF interna se verifica, si es mayor que 90, A+ se imprime Else A-se imprime.

Si @Estudiantees inferior a 90 y la condición IF exterior devuelve FALSO, se mostrará el mensaje ‘Por debajo del Grado A‘.

El uso de BEGIN ….. END en los cuerpos de nuestro bloque IF y nuestro bloque ELSE es necesario si el cuerpo tiene más de una línea de largo. Si su cuerpo tiene solo una línea de largo, puede omitir esas palabras clave.
En el bloque IF, envolvimos nuestra condición entre paréntesis. Esto no es obligatorio, pero el código es más fácil de leer.

Resumen:

  • 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.
  • Else es opcional para usar en la instrucción IF… ELSE
  • También es posible anidar la condición SQL IF ELSE en otra instrucción IF…ELSE.
  •  Puede encontrar más contenido en la página oficial de microsoft

Deja un comentario