--Lesson 5
------------Expressões condicional
--CASE
--Exemplo 1
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 as Salario_revisado
FROM employees;
--Exemplo 2
Select last_name, salary, job_id,
case when salary < 5000 then 'salario baixo'
when salary < 10000 then 'salario medio'
when salary < 15000 then 'salario alto'
Else 'Salario ótimo'
end As mensagem
From employees;
--Exemplo 3
Select last_name, salary, job_id,
case when salary < 5000 then 'salario baixo'
when job_id = 'IT_PROG' Then 'para função é alto'
Else 'Salario bom'
end As mensagem
From employees;
--DECODE - Faz o mesmo que o CASE
--Exemplo 1
SELECT last_name, job_id, salary,
DECODE(job_id, 'IT_PROG', 1.10*salary,
'ST_CLERK', 1.15*salary,
'SA_REP', 1.20*salary,
salary)
REVISED_SALARY
FROM employees;
--Exemplo 2
SELECT last_name, salary,
DECODE (TRUNC(salary/4000, 0),
0, 'baixo',
1, 'medio',
2, 'acima da média',
3, 'salario bom',
4, 'salario alto',
'excelente') as mensagem
FROM employees;
-------------Agrupamentos -cap 5
--Função de agrupamento: AVG, COUNT, MIN, MAX, SUM
Select department_id, count(*), max(salary), min(salary), round(avg(salary)), sum(salary)
From employees
group by department_id;
Select department_id, round(avg(salary))
From employees
Group by department_id
Having Round(Avg(salary)) > 8000
order by 1;
Fiquem a vontade para comentar e sugerir melhorias e/ou correção dos exemplos acima.
Nenhum comentário:
Postar um comentário