Q. 직급에 따라 급여를 인상합니다. 직급이 ANALYST 인 사원은 5%인상
Salesman 10%
MANAGER 15%
CLERK 20%인상한 금액 출력
select ename,sal,job, decode (job,'ANALYST',sal*1.05,
'SALESMAN',sal*1.10, 'MANAGER',sal*1.15, 'CLERK',sal*1.20,
sal) as "인상된 월급"
from emp;
Q. 이름 글자수에 따라 월급을 인상합니다.
4글자 10% ,5글자 20% , 6글자 30% 인상한 결과를 작성하세요
select ename,sal,decode(length(ename),4,sal*1.05,
5,sal*1.20, 6,sal*1.30, sal)as "인상된 월급"
from emp;
Q. 부서 번호에 해당하는 부서명을 구하는 쿼리문을 작성하세요
SELECT ename, deptno,
case when deptno = 10 then 'ACCOUNTING'
when deptno = 20 then 'RESEARCH'
when deptno = 30 then 'SALES'
when deptno = 40 then 'OPERATIONS'
else 'default'
end as dname
from emp;
Q. 직급에 따라 급여를 인상합니다. 직급이 'ANALYST'인 사원은 5%인상
SALESMAN 10% , MANAGER 15% , CLERK 20%인상한 금액을 출력하시오.
SELECT ename, job, sal,
case when job='ANALYST' then sal*1.05
when job='SALESMAN' then sal*1.10 when job='MANEGER'
then sal*1.15 when job='CLERK' then sal*1.20
else sal end as "인상된 금액" from emp;
Q. 이름 글자수에 따라 월급을 인상합니다.
4글자 10% , 5글자 20% , 6글자 30% 인상한 결과를 작성하세요
select ename,length(ename), job, sal,
case when length(ename)=4 then sal*1.10
when length(ename)=5 then sal*1.20
when length(ename)=6 then sal*1.30 else sal
end as "UP SAL"
from emp;
Q. 직급이 MANAGER인 사람 중에 부서 번호가 10이면 'NEW YORK', 20이면 'Dallas'그 외는 'Unknown'으로 나오게 하시오.
select ename,job, deptno,
case when deptno = 10 then 'NEW YORK'
when deptno = 20 then 'Dallas'
else 'Unknown' end as "근무지" from emp where job = 'MANAGER';
//then'ㅁ' ㅁ안에 들어가는 문자는 대소문자가 구분된다
ex.then 'Dallas' => 출력 Dallas
select ename,job, deptno,
case when deptno = 10 then 'NEW YORK'
when deptno = 20 then 'Dallas'
end as "근무지" from emp where job = 'MANAGER';
//만약 else를 쓰지 않는다면 조건에 맞지 않는
조건의 없는 항목은 null값이 출력된다