Está en la página 1de 2

hermosaprogramacion.

com

http://www.hermosaprogramacion.com/2014/06/mysql-sql-server-if-else/

La sentencia IF en SQL Server y MySQL


James
Revelo

Las sentencias IFELSE de SQL al igual que en otros lenguajes de programacin permiten controlar el flujo de
nuestros bloques de instrucciones dependiendo de la validez de una serie de condiciones.
Cuando uso estas sentencias?
Cuando desees ejecutar solo algunas instrucciones si se cumple una condicin. Por ejemplo cuando deseas
evaluar si un precio de un producto es mayor a un valor y as decidir aplicar un descuento. O cuando al seleccionar
los registros de una tabla que deban ser dados de baja. Todo depende de tus necesidades.
Como uso IFELSE?
Es sencillo!. En primer lugar compruebas si es verdadera tu primera condicin con IF. En caso de que lo sea se
ejecutaran las instrucciones que has puesto. Si no fue verdadera, entonces usas ELSE IF para representar otra
condicin que tal vez si satisfaga el condicional.
Puedes poner tantos ELSE IF como condiciones desees establecer. Si al final ningn ELSE IF se cumple entonces
terminar en la sentencia ELSE, la cual ejecuta algunas instrucciones en caso de que ninguna condicin se haya
cumplido.
SQL Server y MySQL usan sintaxis muy distintas pero cumplen el mismo cometido
SQL Server

MySQL

instrucciones
ELSE IF
instrucciones

ELSE IF
instrucciones
ELSE

IF THEN
instrucciones
ELSEIF THEN
instrucciones

ELSEIF THEN
instrucciones
ELSE
instrucciones

IF

instrucciones

END IF;
Que diferencias hay?
1. SQL Server no usa la sentencia THEN
2. SQL Server no usa END IF;
3. SQL Server usa el ELSE IF con un espacio intermedio
Podras mostrar un ejemplo en ambos motores?
Obvio!, a continuacin veremos un bloque de sentencias que actualiza los clientes con respecto al acumulado de
compras.

Los clientes que superen $3200 dolares se les asignara en su atributo PRIORIDAD un rango ALTO
representado con el carcter A. Los clientes que hayan comprado entre $1600 y $3200 dolares se
les asigna prioridad MEDIO M. Y los clientes con compras acumuladas menores a $1600 se les

asigna prioridad BAJA B.

SQL Server
IF @ACUMULADO > 3200
UPDATE CLIENTE
SET PRIORIDAD = A;
ELSE IF @ACUMULADO BETWEEN 1600
AND 3200
UPDATE CLIENTE
SET PRIORIDAD = M;
ELSE
UPDATE CLIENTE
SET PRIORIDAD = B;

MySQL
IF ACUMULADO > 3200 THEN
UPDATE CLIENTE
SET PRIORIDAD = A;
ELSEIF ACUMULADO BETWEEN 1600
AND 3200 THEN
UPDATE CLIENTE
SET PRIORIDAD = M;
ELSE
UPDATE CLIENTE
SET PRIORIDAD = B;
END IF;

También podría gustarte