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;