PNU 값을 통해서 원천 시군구 코드를 구하는 방법을 알아보자.
추출하는 방법으로 Java 와 SQL Function 을 예로 들겠다.
워낙 간단한 거라서 다른 프로그래밍 언어를 사용해도 충분히 추출할 수 있다.
참고로 구제시와 관련된 것도 고려한 추출법이다.
public class SrcSignguUtil {
public static String getSrcSigngu(String pnu) {
String result = "";
if(pnu == null && pnu.trim().length > 0 && pnu.trim().length < 5)
return result;
}
pnu = pnu.trim();
string admSectCd = pnu.substring(0,5);
if( "43740".equals(admSectCd) ||
"43740".equals(admSectCd) ||
"43740".equals(admSectCd)) {
result = admSectCd;
}
// 특별시, 광역시는 예외
else if(Integer.parseInt(admSectCd.substring(0,1)) < 4) {
result = admSectCd
}
// 구제시와 일반 시군구 코드 끝에는 마지막 5번째 자리를 0으로 대체한다.
else {
result = admSectCd.substring(0,4) + "0";
}
return result;
}
}
create function get_src_sgg_code(pnu varchar) returns varchar as $$
declare
v_cd_nm varchar := '';
begin
if pnu = '' or (length(pnu) < 5) then
return '';
end if;
pnu := substring(pnu, 1, 5);
select
case
when pnu = '43740'
or pnu = '43745'
or pnu = '44825' then pnu
when substring(pnu, 1, 1) < '4' then pnu -- 특별시,광역시 예외
else substring(pnu, 1, 4) || '0' -- 구제시와 일반 시군구 코드
end
into v_cd_nm;
return v_cd_nm;
end;
$$ language plpgsql;