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.';
En el ejemplo anterior, la condición IF @precio > @costO
verifica si @precio
es mayor que @costo
The @precio > @costo
devuelve 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.';
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';
En el ejemplo anterior, la declaración IF contiene la consulta de selección entre paréntesis Select AVG(Salario) from Empleado
y 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 @Estudiante
es 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 @Estudiante
es 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