오라클 쿼리 질문좀 드리겠습니다. 1 4 813

by 밍밍밍밍 [SQL Query] [2017.04.13 11:19:02]


SELECT REPLACE(JUMIN_NUM, '-', '') FROM WORK WHERE WORK_CNT = 1

 

 

SELECT FLOOR(MONTHS_BETWEEN('20161231', TO_DATE(birth_ymd,'yyyymmdd'))/12)
FROM
(
SELECT '8803051111111',
       CASE WHEN SUBSTR('8803051111111',7,1) IN ('1','2','5','6') THEN '19'
            WHEN SUBSTR('8803051111111',7,1) IN ('3','4','7','8') THEN '20'
            WHEN SUBSTR('8803051111111',7,1) IN ('9','0') THEN '18' END
       || SUBSTR('8803051111111',1,6) birth_ymd
FROM dual
)

 

처음 쿼리문에서 구한 주민번호 리스트를 2번쨰 쿼리문 880305111111에 넣어서

만 나이를 구하고 싶은데.. 두 쿼리문을 합치려고 하는데 조언좀 부탁드리겠습니다.

by jkson [2017.04.13 11:43:57]
SELECT JUMIN_NUM
     , FLOOR(MONTHS_BETWEEN('20161231', TO_DATE(BIRTH_YMD,'yyyymmdd'))/12)
  FROM
    (
    SELECT JUMIN_NUM,
           CASE WHEN SUBSTR(JUMIN_NUM,7,1) IN ('1','2','5','6') THEN '19'
                WHEN SUBSTR(JUMIN_NUM,7,1) IN ('3','4','7','8') THEN '20'
                WHEN SUBSTR(JUMIN_NUM,7,1) IN ('9','0') THEN '18' END
           || SUBSTR(JUMIN_NUM,1,6) BIRTH_YMD
      FROM (SELECT REPLACE(JUMIN_NUM, '-', '') JUMIN_NUM 
              FROM WORK WHERE WORK_CNT = 1)
    )

 


by 밍밍밍밍 [2017.04.13 13:25:47]

답변감사드립니다. 쿼리는 잘실행이 되는데

 

where 조건을 다르게 걸어서 실행을하니

 

ORA-01839: 지정된 월에 대한 날짜가 부적합합니다 에러가 뜨는데..

 

검색으로 해보니 날짜를 잘못넣어서 그런거라는데 혹시 날짜잘못넣은데이터를 따로 체크할수는있을까요..?


by jkson [2017.04.13 13:45:44]
SELECT *
  FROM (SELECT JUMIN_NUM, CASE
                           WHEN SUBSTR(JUMIN_NUM, 7, 1) IN ('1', '2', '5', '6') THEN '19'
                           WHEN SUBSTR(JUMIN_NUM, 7, 1) IN ('3', '4', '7', '8') THEN '20'
                           WHEN SUBSTR(JUMIN_NUM, 7, 1) IN ('9', '0') THEN '18'
                          END ||
                          SUBSTR(JUMIN_NUM, 1, 6)
                           BIRTH_YMD
          FROM (SELECT REPLACE(JUMIN_NUM, '-', '') JUMIN_NUM
                  FROM WORK
                 WHERE WORK_CNT = 1)) A
     , XMLTABLE ('if (. castable as xs:date) then () else xs:string(.)' 
                 PASSING A.BIRTH_YMD) B;

 


by 밍밍밍밍 [2017.04.13 18:02:32]

답변감사드립니다~

 

해결했습니다^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입