SQL – La expresión SELECT CASE

La expresión CASE permite utilizar la lógica IF-THEN-ELSE en sentencias SQL sin tener que invocar procedimientos. Esta expresión se incluye a partir de la versión Oracle9i Server.

La siguiente es la sintaxis que presenta la expresión CASE:

CASE expr WHEN comparison_expr1 THEN return_expr1

WHEN comparison_expr2 THEN return_expr2

WHEN comparison_exprn THEN return_exprn

ELSE else_expr ]

END

Todas las expresiones (expr, comparison_expr y return_expr) deben ser del mismo tipo de dato, el cual puede ser CHAR, VARCHAR2, NCHAR, o NVARCHAR2.

El siguiente ejemplo muestra el uso de la expresión CASE:

Se requiere calcular el salario devengado por los empleados en una empresa, teniendo en cuenta el cargo que desempeñan dentro de esta. Para esto se realiza:

SELECT cedulaEmpleado, nombreEmpleado, codigoCargo,

CASE codigoCargo

WHEN ‘secretaria’ THEN 300000* 1.5

WHEN ‘contador’ THEN 300000* 2

WHEN ‘mensajero’ THEN 300000* 1.2

WHEN ‘celador’ THEN 300000* 1.8

ELSE 400000

END “salarioDevengado”

FROM empleados;

De lo anterior se obtiene:

cedulaEmpleadonombreEmpleadocodigoCargosalarioDevengado
45658245L. Rodríguezservicios grles400000
2569854M. Reyessecretaria450000
23656588J. Pérezcelador540000
7856325G. Osoriomensajero360000

Se observa que el salario de los empleados con cargo ‘secretaria’ se obtuvo multiplicando 300000 por un factor de 1.5, el de ‘contador’ por un factor de 2, el de ‘mensajero’ por 1.2 y el de celador por 1.8. El salario de los empleados que ocupan otros cargos diferentes a los definidos en la consulta toma el valor de 400000 (esto es por la claúsula ELSE).

Escrito por: Sandra P
tt_sandra at yahoo dot com

Leave a Reply