우주라이크닷넷

나이계산 SQL(만나이) 쿼리 본문

『우주라이크 IT/SQL

나이계산 SQL(만나이) 쿼리

woojoolike 2018.03.08 11:31

나이 계산을 위해서는 주민번호 체계를 먼저 이해해야 합니다.

주민번호 : 8301161******

앞의 생년월일6자리 다음에 오는 자리는 일반적으로 성별을 판별하는 것으로 알고 있지만,
그 외에 나이를 계산하는 용도로도 사용이 됩니다.

- 7번째 자리 기준
  1, 2 : 1900년대 생
  3, 4 : 2000년대 생
  9, 0 : 1800년대 생

이 기준으로 샘플 SQL을 만들어보겠습니다.

1. 일단, 계산을 위해 먼저 데이터를 만듭니다.
  CREATE TABLE TMP_AGE AS
      SELECT 8301161 FROM DUAL
      UNION
      SELECT 1401213 FROM DUAL

2. 생성된 데이터에 대해 나이 계산을 합니다.
SELECT BIRTH, TO_CHAR(SYSDATE,'YYYY')-
        (CASE WHEN SUBSTR(BIRTH,7,1) IN (9,0) THEN 18
        (CASE WHEN SUBSTR(BIRTH,7,1) IN (1,2) THEN 19
        (CASE WHEN SUBSTR(BIRTH,7,1) IN (3,4) THEN 20  END
        * 100+SUBSTR(BIRTH,1,2)) +1 AGE
---------------------------------------------------------------------
결과

 BIRTH

 AGE

 8301161

36 

 1401213

 5


3. 만 나이 계산
위 SQL에서 마지막 +1을 제거해주면 됩니다.
   SELECT BIRTH, TO_CHAR(SYSDATE,'YYYY')-
        (CASE WHEN SUBSTR(BIRTH,7,1) IN (9,0) THEN 18
        (CASE WHEN SUBSTR(BIRTH,7,1) IN (1,2) THEN 19
        (CASE WHEN SUBSTR(BIRTH,7,1) IN (3,4) THEN 20  END
        * 100+SUBSTR(BIRTH,1,2))  AGE


 

Tag
,
0 Comments
댓글쓰기 폼