본문 바로가기
WEB/SQL

나이 계산 SQL

by iiaii 2016. 2. 22.
반응형

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