직원들의 급여를 인상시켜서 조회
직급코드가 J7인 사원은 급여를 10%로 인상해서 조회
J6인 사원은 급여를 15%로 인상해서 조회
직급코드가 J5인 사원은 급여를 20%로 인상해서 조회
그 외의 직급 사원들은 급여를 5%로 인상해서 조회
DECODE 사용
SELECT EMP_NAME, JOB_CODE, SALARY"기존급여" ,
DECODE(JOB_CODE, 'J7', SALARY * 1.1
, 'J6', SALARY * 1.15
, 'J5' ,SALARY * 1.2
, SALARY * 1.05 ) "인상된급여"
FROM EMPLOYEE;
[결과값]
선동일 J1 8000000 8400000
송종기 J2 6000000 6300000
노옹철 J2 3700000 3885000
송은희 J4 2800000 2940000
유재식 J3 3400000 3570000
CASE WHEN THEN 사용
접근1)
SELECT EMP_NAME,JOB_CODE,SALARY "기존급여",
CASE WHEN JOB_CODE = 'J7' THEN SALARY * 1.1
WHEN JOB_CODE = 'J6' THEN SALARY * 1.15
WHEN JOB_CODE = 'J5' THEN SALARY * 1.2
END SALARY * 1.05 "인상된급여"
FROM EMPLOYEE;
FROM~ 에서 오류가 발생했다고 하는데 어떤 게 문제인지 모르겠다..ㅎ
=> 별칭 전에 END 기술한 거랑 ELSE 기술 하지 않은 부분 수정하기
접근2)
ELSE 구문과 END를 추가적으로 기술했다.
SELECT EMP_NAME,JOB_CODE,SALARY "기존급여",
CASE WHEN JOB_CODE = 'J7' THEN SALARY * 1.1
WHEN JOB_CODE = 'J6' THEN SALARY * 1.15
WHEN JOB_CODE = 'J5' THEN SALARY * 1.2
ELSE SALARY * 1.05
END "인상된급여"
FROM EMPLOYEE;
[결과값]
선동일 J1 8000000 8400000
송종기 J2 6000000 6300000
노옹철 J2 3700000 3885000
송은희 J4 2800000 2940000
유재식 J3 3400000 3570000
728x90
'🚨 Error > ORACLE' 카테고리의 다른 글
[Oracle] 비등가 조인을 활용하여 문제 풀기 (0) | 2021.03.12 |
---|---|
[Oracle] 두 개이상의 테이블을 외부조인 하는 방법 (0) | 2021.03.12 |
[Oracle] 데이터 테이블에서 이메일 전체 조회가 아닌 아이디만 조회하고 싶을 때 (0) | 2021.03.07 |
[Oracle] WHERE절에서 와일드카드 기술하기 (0) | 2021.03.05 |
[Oracle] 보너스 포함 연봉 칼럼에 '원'이라는 리터럴 값 제시 (0) | 2021.03.04 |
댓글