Las expresiones CASE le permiten utilizar la lógica IF-THEN-ELSE en sentencias SQL
sin llamar a procedimientos.
En una expresión CASE simple, Oracle
Server busca el primer par WHEN ... THEN en el
que expr sea igual a comparison_expr y devuelve return_expr.
Si ninguno de los pares WHEN... THEN cumplen esta condición y
si existe una cláusula ELSE, Oracle Server devuelve else_expr. De lo contrario,
Oracle Server devuelve un valor nulo. No puede especificar el literal NULL para
todas las expresiones return_exprs y else_expr.
Todas las expresiones ( expr, comparison_expr y return_expr)
deben ser del mismo tipo de datos, que puede ser CHAR, VARCHAR2, NCHAR o
NVARCHAR2.
SELECT last_name, job_id, salary
CASE job_id WHEN 'IT_PROG' THEN 1.10*salary
WHEN 'ST_CLERK' THEN 1.15*salary
WHEN 'SA_REP' THEN 1.20*salary
ELSE salary END "REVISED_SALARY"
FROM employees;
SELECT last_name, job_id, salary
CASE job_id WHEN 'IT_PROG' THEN 1.10*salary
WHEN 'ST_CLERK' THEN 1.15*salary
WHEN 'SA_REP' THEN 1.20*salary
ELSE salary END "REVISED_SALARY"
FROM employees;
0 comentarios:
Publicar un comentario