반응형
CASE WHEN ( 18 - (TO_NUMBER(TO_CHAR(SYSDATE,'YYYY')) - TO_NUMBER(DECODE ( SUBSTR(#주민번호,7,1),'1','19','2','19','20')||SUBSTR(#생년월일,1,2)+1 >= 0) THEN 1 END AS AGE 18
CASE WHEN ( 19 - (TO_NUMBER(TO_CHAR(SYSDATE,'YYYY')) - TO_NUMBER(DECODE ( SUBSTR(#주민번호,7,1),'1','19','2','19','20')||SUBSTR(#생년월일,1,2)+1 = 0) THEN 1 END AS AGE 19
CASE WHEN ( 20 - (TO_NUMBER(TO_CHAR(SYSDATE,'YYYY')) - TO_NUMBER(DECODE ( SUBSTR(#주민번호,7,1),'1','19','2','19','20')||SUBSTR(#생년월일,1,2)+1 <= 0) THEN 1 END AS AGE 20
해당 나이인 인원을 1로 바꾸로 합계를 낼때 사용한다 .
주민번호 뒷번호 첫째 자리의 수로 1900년생인지 2000년 생인지 구분을 한후 태어난 년도와 결합한후 현재 년도 와 뺀 값에서
+1을 하여 계산 한다
여기서 CASE 문으로 해당 나이가 맞을 경우 0으로 처리되는 값을 1 로 바꾸어 통계를 낼 때 사용한다.
반응형
'WEB > SQL' 카테고리의 다른 글
PostGresSQL 의 NVL (0) | 2023.04.06 |
---|---|
oracle 과 mariaDb 의 차이점 (0) | 2020.08.10 |
sql join 문 한눈에 쉽게 이해하기 (0) | 2017.12.08 |
dual table (dummy table) 활용 하기 (0) | 2016.02.23 |
decode 과 nvl (0) | 2016.02.23 |