Condicionales - adress/oracle-sql GitHub Wiki
Decode
Retona el valor v donde la condición c se cumpla, de no cumplir ninguna condición retorna el valor default
decode(campo, c1, v1, c2, v2, default)
Case
Funciona igual a un swich case normal, solo compara la variable seleccionada con una igualdad
SELECT first_name, job_id,
CASE job_id
WHEN 'SH_CLERK' THEN 'TIPO 1'
WHEN 'ST_MAN' THEN 'TIPO 2'
WHEN 'ST_CLERK' THEN 'TIPO 3'
ELSE 'SIN TIPO'
END
FROM EMPLOYEES
WHERE department_id=50;
Case (searched)
Este case se usa con operadores lógicos de distinto tipo y puede comparar distintas variables
SELECT FIRST_NAME, SALARY,
CASE
WHEN SALARY BETWEEN 0 AND 3000 THEN 'GANAS POCO'
WHEN SALARY BETWEEN 3001 AND 5000 THEN 'GANAS COMO LA MEDIA'
WHEN SALARY > 5000 THEN 'GANAS BASTANTE'
ELSE 'NO GANAS'
END
FROM EMPLOYEES;