본문 바로가기
개발기록/Oracle & SQLD

SQL 함수, 단일행 함수 CASE, DECODE

by 쎄정 2022. 5. 17.
728x90
반응형

CASE

CASE WHEN ELSE END
조건이 맞으면 THEN절을 수행하고 아니라면 ELSE문을 수행한다.
WHEN, ELSE, END절에 서브쿼리를 넣어 사용할 수 있다.

CASE WHEN 조건
 THENOR SQL
 ELSEOR SQL
 END

CASE 예시

SELECT CASE WHEN SAL_CD = '100001' THEN '기본급'
			WHEN SAL_CD = '100002' THEN '상여금'
			WHEN SAL_CD = '100003' THEN '특별상여금'
			WHEN SAL_CD = '100004' THEN '야근수당'
			WHEN SAL_CD = '100005' THEN '주말수당'
			WHEN SAL_CD = '100006' THEN '점심식대'
			WHEN SAL_CD = '100007' THEN '복지포인트'
			ELSE '유효하지 않음'
			END SAL_NM
FROM TB_SAL

DECODE

DECODE(표현식, 비교값1, 결과값1, 비교값2, 결과값2 ...)
표현식이 비교값1과 같으면 결과값1, 표현식이 비교값2과 같으면 결과값2
표현식과 비교값을 비교하여 결과 값을 리턴한다.

DECODE 예시

SELECT DECODE(SAL_CD, '1400001', '기본급', '100002', '상여금', '기타') AS SAL_NM FROM TB_SAL;

728x90
반응형

댓글