com
http://www.hermosaprogramacion.com/2014/06/mysql-sqlserver-case/
La sentencia case de SQL es una estructura condicional que ejecuta ciertas instrucciones dependiendo de la
validez de alguna expresin. Normalmente se usa cuando surgen mltiples condiciones donde se compara una
expresin con una constante literal. Por lo que se considera una alternativa a la sentencia if en estos casos.
independientemente sin tener que apoyarse en otras sentencias. Adems cada vez que se cumple una condicin
podemos ejecutar varias instrucciones y no solo devolver un valor como lo hace SQL Server.
Dices que hay otra forma de usar la sentencia CASE, cual es?
Se le llama case de bsqueda. Su estructura cambia pero cumple exactamente las mismas funciones. Esta vez
los condicionales no sern literales, si no expresiones condicionales formadas por operadores de comparacin y
operadores lgicos. Miremos un ejemplo:
Suponga que existe una variable llamada totalVentas, la cual contiene el total acumulado de todas las ventas
hechas por un vendedor de su compaa en el mes actual. Si el vendedor obtuvo entre 1000 y 2000 dolares,
asignele una comisin del 2% de las ventas a su salario. Si vendi entre 2001 y 3000 dolares, asignele
una comisin del 3% y si vendi mas de 3001 dolares, asignele una comisin del 7%.Usaremos la sentencia
CASE de bsqueda para representar esos 3 casos. Construiremos cada caso con el operador BETWEEN o algn
operador de comparacin.
Solucin en Sql Server:
UPDATE VENDEDOR
THEN
0.02;
THEN
0.03;
0.07;
Como notas, ya no usamos una expresin de entrada luego de la palabra CASE, simplemente ubicamos cada
condicin compuesta despus del WHEN y enseguida ubicamos lo que deseamos hacer en caso de cumplirse.
Para Sql Server el CASE de bsqueda debe estar inmiscuido dentro de una sentencia, en este caso era la
sentencia UPDATE. En cambio para MySQL, puede presentarse de forma individual, adems de que podemos
usar distintos tipos de instruccin luego del THEN.