Uso de funcion IF ELSE en SQL
¿Que es IF ELSE?
IF Expresion_Boleana BEGIN Bloque Sentencia T-SQL END
Sintaxis usando IF ELSE
IF Expresion_Boleana BEGIN Bloque Sentencia T-SQL END ELSE BEGIN Bloque Sentencia T-SQL END
A continuación vamos a explicar la estructura de la función IF ELSE mediante el siguiente diagrama.
Primero debemos entender que la expresión evaluada en el IF es una Expresión Booleana es decir que se evalúa como Verdad o Falsa.
En el cuadro anterior podemos ver que si la expresión Booleana resulta ser verdadera se ejecuta las instrucciones T-SQL contenida dentro del IF. Todo lo contrario ocurre si la expresión booleana se evalúa como Falsa, entonces no se ejecuta las instrucciones dentro del IF sino las contenida dentro del ELSE.
La sentencia IF ELSE hace uso de las palabras claves BEGIN-END y nos permite ejecutar sentencias T-SQL. En consultas más robustas podemos hacer uso de BEGIN-END para evaluar una serie de instrucciones SQL.
Dentro de Begin-End podemos ejecutar bloques de instrucciones como por ejemplo Insertar registros a una tabla, actualizar registros en dichas tabla, seleccionar registros de una tabla y eliminar registros de la tabla, todo esto siempre y cuando la condición establecida se cumpla ya sea en el IF o en el ELSE.
Como nota importante debemos saber que al crear una sentencia SELECT dentro de un BEGIN-END esta la debemos encerrar entre paréntesis de lo contrario nos arrojará error le ejecución.
Ejemplo de uso de IF ELSE en SQL Server
BEGIN DECLARE @Productos AS INT SELECT @Productos = AVG(sp.Precio*sp.CantidadOrdenada) FROM SfaPedidoDetalle as sp INNER JOIN SfaPedido AS fp ON sp.objPedidoID = fp.ID WHERE MONTH(fp.Fecha) = 03 --Indica el mes que es marzo SELECT @Productos; IF @Productos > 1000 BEGIN PRINT 'El monto en venta de productos es mayor a 10000' END END
A vamos a crear la consulta en SQL Server Management Studio.
BEGIN DECLARE @EDAD INT SET @EDAD = 45 IF @EDAD < 18 PRINT 'PERSONA MENOR DE EDAD' ELSE PRINT'PERSONA MAYOR DE EDAD' END
A continuación, la siguiente consulta ejecutemos en SQL Server Management Studio:
Ahora ejecutemos la consulta para ver el resultado.
IF ELSE Anidados en SQL Server
CREATE PROCEDURE spGenerarVenta @AutoID as int, @Precio as decimal(6,2), @Cantidad as int, @FormaVenta as varchar(100) AS BEGIN IF @FormaVenta = 'Credito' BEGIN PRINT'Insertando venta de credito..' INSERT INTO AutosVentas(AutoID,Precio,Cantidad,FormaVenta) VALUES(@AutoID,@Precio,@Cantidad,@FormaVenta) END ELSE BEGIN IF @FormaVenta = 'Contado' PRINT'Insertando venta de contado..' INSERT INTO AutosVentas(AutoID,Precio,Cantidad,FormaVenta) VALUES(@AutoID,@Precio,@Cantidad,@FormaVenta) END END GO
A continuación vamos a realizar la ejecución de la consulta en Management studio de SQL:
Ahora ejecutemos el procedimiento almacenado para mostrar el resultado de la consulta.
Ejecutamos el procedimiento almacenado y le pasamos los parámetros como son el ID del Auto, el precio la cantidad y la forma del pago, esta última es la que la condición evaluará ya que si es de crédito se registrará con esa especificación sino por el contrario se registrará como una venta de contado. Para nuestro caso hemos insertado información que la venta ha sido de crédito.
0 Comentarios