개입 법인 구분 0 2 5,725

by 달타냥 [SQL Query] 쿼리 sql 함수 function [2016.10.24 17:11:27]


문제가 있어서 문의드립니다

현재 주어진 값은 13자리 숫자값입니다 

이 번호가 주민번호인지 법인등록번호 인지를 알아야하는데

아시다시피 주만번호 법인번호는 모두 길이가 13자리로 같습니다

위 두개를 구분할수 있는 어떤방법이 있을까요

저와 같은 고민이 있으신분이 있을까해서 검색을 해봤는데 나오질 않는군요

조언을 부탁드립니다

by jkson [2016.10.24 17:29:59]

네이버에서 '법인번호 체크', '주민번호 체크'로 검색하니까 로직은 많이 나오는데요. 해당 로직을 function으로 만드시면 될 것 같네요.

주민번호 체크 : http://aljjabaegi.tistory.com/11

법인번호 체크 : http://blog.naver.com/PostView.nhn?blogId=woorinil&logNo=140047779288&widgetTypeCall=true


by 마농 [2016.10.24 17:40:26]
WITH t AS
(
SELECT '1609294567893' sno FROM dual
UNION ALL SELECT '1101110656368' FROM dual
)
SELECT sno
     , m, x, y
     , DECODE(m, x, 'Y', 'N') 법인
     , DECODE(m, y, 'Y', 'N') 주민
  FROM (SELECT sno
             , m
             , MOD(10 - MOD(a*1 + b*2 + c*1 + d*2 + e*1 + f*2 + g*1 + h*2 + i*1 + j*2 + k*1 + l*2, 10), 10) x
             , MOD(11 - MOD(a*2 + b*3 + c*4 + d*5 + e*6 + f*7 + g*8 + h*9 + i*2 + j*3 + k*4 + l*5, 11), 10) y
          FROM (SELECT sno
                     , SUBSTR(sno,  1, 1) a
                     , SUBSTR(sno,  2, 1) b
                     , SUBSTR(sno,  3, 1) c
                     , SUBSTR(sno,  4, 1) d
                     , SUBSTR(sno,  5, 1) e
                     , SUBSTR(sno,  6, 1) f
                     , SUBSTR(sno,  7, 1) g
                     , SUBSTR(sno,  8, 1) h
                     , SUBSTR(sno,  9, 1) i
                     , SUBSTR(sno, 10, 1) j
                     , SUBSTR(sno, 11, 1) k
                     , SUBSTR(sno, 12, 1) l
                     , SUBSTR(sno, 13, 1) m
                  FROM t
                )
        )
;

 

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