반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Java
- 자바
- 생성자쓰는이유
- 생성자
- 작성순서
- HAVING
- ifelse
- 향상된for문
- SQL
- 상속
- setter
- sql오류
- 칼럼명에 별칭 지정
- Join
- .substring
- int오류
- 삼항연산자
- 프로그래머스
- 제어문
- executeUpdate
- 오라클
- 연산자
- 카카오인턴십
- getter
- .repeat
- 겟터
- 이터레이블
- SELECT 절
- for문
- 객체
Archives
- Today
- Total
CoDream
[SQL] 선택함수 (DECODE, CASE) 본문
728x90
반응형
<선택함수>
여러 가지 경우에 선택을 할 수 있는 기능을 제공하는 함수이다.
DECODE
- [문법] DECODE(칼럼|계산식, 조건값 1, 결과값 1, 조건값 2, 결과값 2, ..., 결과값)
- 비교하고자 하는 값이 조건값과 일치할 경우 그에 해당하는 결과값을 반환해 주는 함수이다.
SELECT EMP_NAME , DEPT_CODE , DECODE(DEPT_CODE , 'D1', '개발1팀','D2','개발2팀','D9','영업1팀')AS 부서명 FROM EMPLOYEE;
SELECT EMP_NAME , JOB_CODE AS 직급코드 , DECODE( JOB_CODE ,'J1','대표' ,'J2','부사장' ,'J3','부장' ,'J4','과장' ,'J5','차장' ,'J6','대리' ,'J7','사원' )AS 직급 FROM EMPLOYEE;
CASE
- DECODE[문법] DECODE(칼럼|계산식, 조건값 1, 결과값 1, 조건값 2, 결과값 2, ..., 결과값)
- 비교하고자 하는 값이 조건값과 일치할 경우 그에 해당하는 결과값을 반환해 주는 함수이다.
SELECT EMP_NAME , DEPT_CODE , DECODE(DEPT_CODE , 'D1', '개발1팀','D2','개발2팀','D9','영업1팀')AS 부서명 FROM EMPLOYEE;
SELECT EMP_NAME , JOB_CODE AS 직급코드 , DECODE( JOB_CODE ,'J1','대표' ,'J2','부사장' ,'J3','부장' ,'J4','과장' ,'J5','차장' ,'J6','대리' ,'J7','사원' )AS 직급 FROM EMPLOYEE;
- CASE
[문법] CASE WHEN 조건식 1 THEN 결과값 1
WHEN 조건식 2 THEN 결과값 2 ...
ELSE 결과값 N
END
-- 사원명, 직급코드, 직급명 조회(직급명은 아무렇게나)
SELECT
EMP_NAME
, JOB_CODE
, CASE
WHEN JOB_CODE = 'J1' THEN '대표'
WHEN JOB_CODE = 'J2' THEN '부사장'
WHEN JOB_CODE = 'J3' THEN '부장'
WHEN JOB_CODE = 'J4' THEN '차장'
WHEN JOB_CODE = 'J5' THEN '과장'
WHEN JOB_CODE = 'J6' THEN '대리'
WHEN JOB_CODE = 'J7' THEN '사원'
ELSE '해당없음'
END AS 직급
FROM EMPLOYEE;
-- 사원명, 월급, 초급 중금 고급 특급 구분 (급여 )
SELECT
EMP_NAME
, SALARY
, CASE
WHEN SALARY <= 3000000 THEN '초급'
WHEN SALARY <= 5000000 THEN '중급'
WHEN SALARY <= 7000000 THEN '고급'
ELSE '특'
END AS 구분
FROM EMPLOYEE
ORDER BY SALARY DESC;
-- 사원명 , 주민번호, 성별조회
SELECT
EMP_NAME
, EMP_NO
, CASE
WHEN EMP_NO LIKE '_______1%' THEN '남성'
WHEN EMP_NO LIKE '_______2%' THEN '여성'
-- ,WHEN SUBSTR(EMP_NO, 8,1) IN(1,3) THEN '남성'
-- ,WHEN SUBSTR(EMP_NO, 8,1) IN(2,4) THEN '여성'
END AS 성별
FROM EMPLOYEE
ORDER BY SALARY DESC;
728x90
반응형
'[DB]Oracle SQL > Oracle SQL 이론' 카테고리의 다른 글
[SQL] GROUP BY (그룹화) (1) | 2024.03.23 |
---|---|
[SQL] 그룹 함수 (0) | 2024.03.23 |
[SQL] NULL 처리 함수 (0) | 2024.03.23 |
[SQL] 형변환 함수 (1) | 2024.03.23 |
[SQL] 단일행 함수 > 날짜 함수 (0) | 2024.03.23 |