CASE, DECODE 함수
SELECT DECODE(5-3,1,'5-3=1 입니다.' --5-3이 1 이면 5-3=1 을 찍고 끝
,4,'5-3=4 입니다.' --아니면 다음 것
,'몰라요') --아니면 다음 것
FROM DUAL;
<<결과>>
몰라요
--------------------------------------------------------------------------------
CASE WHEN THEN ELSE END
--값이 떨어지는 경우--
SELECT CASE 5-3
WHEN 1 THEN '5-3=1 입니다.'
WHEN 2 THEN '5-3=2 입니다.'
ELSE '몰라요'
END
FROM DUAL;
--> 5-3=2 입니다.
SELECT CASE
WHEN 5<2 THEN '5는 2보다 작습니다.' --참이면 끝, 거짓이면 다음 것
WHEN 5>2 THEN '5는 2보다 큽니다.'
ELSE '몰라요'
END
FROM DUAL;
--> 5는 2보다 큽니다.
---------------------------------------------------------------------------
<<성별>>
SELECT SANO AS "사원번호",
NAME AS "사원명",
JUBUN AS "주민번호",
CASE
WHEN SUBSTR(JUBUN, 7, 1) IN ('1','3') THEN '남'
ELSE '여' END AS "성별"
FROM TBL_NEWSAWON;
<<결과>>
“성별” 파일참조
------------------------------------------------------------------------------
<현재나이> = 현재년도 – 태어난년도
SELECT SANO AS "사원번호",
NAME AS "사원명",
JUBUN AS "주민번호",
CASE
WHEN SUBSTR(JUBUN, 7, 1) IN ('1','3') THEN '남'
ELSE '여' END AS "성별",
EXTRACT(YEAR FROM SYSDATE)
- (CASE
WHEN SUBSTR(JUBUN, 7, 1) IN ('1','2')
THEN TO_NUMBER( SUBSTR(JUBUN, 1, 2) ) + 1900
ELSE TO_NUMBER( SUBSTR(JUBUN, 1, 2) ) + 2000
END )
+ 1 AS "현재나이
FROM TBL_NEWSAWON;
<<결과>
“현재나이” 파일 참조
/*
<태아난 년도>= JUBUN 앞 두자리 + 1900(OR +2000)
CASE
WHEN SUBSTR(JUBUN, 7, 1) IN ('1','2')
THEN TO_NUMBER( SUBSTR(JUBUN, 1, 2) ) + 1900
ELSE TO_NUMBER( SUBSTR(JUBUN, 1, 2) ) + 2000
END AS "태어난년도"
*/
-------------------------------------------------------------------------------
<연령대>=JUBUN 앞 두자리 + 1900(OR +2000) 하고
SELECT SANO AS "사원번호",
NAME AS "사원명",
JUBUN AS "주민번호",
CASE
WHEN SUBSTR(JUBUN, 7, 1) IN ('1','3') THEN '남'
ELSE '여' END AS "성별",
TRUNC( EXTRACT(YEAR FROM SYSDATE)
- (CASE
WHEN SUBSTR(JUBUN, 7, 1) IN ('1','2')
THEN TO_NUMBER( SUBSTR(JUBUN, 1, 2) ) + 1900
ELSE TO_NUMBER( SUBSTR(JUBUN, 1, 2) ) + 2000
END )
+ 1, -1) || '대' AS "연령대"
FROM TBL_NEWSAWON;
<<결과>>
“연령대” 파일 참조
'IT. 컴퓨터' 카테고리의 다른 글
[오라클] 뷰테이블 조회 VIEW_NEWSAWON (0) | 2020.07.02 |
---|---|
[오라클]] INLINE VIEW (0) | 2020.06.29 |
[오라클] 날짜함수, 변환함수 (0) | 2020.06.18 |
[오라클] 옥션 테이블 생성 및 메시지 (0) | 2020.06.16 |
[오라클] 날짜함수, 숫자함수 (0) | 2020.06.13 |