[GIS] PNU 에서 원천 시군구 코드 추출하는 법

식빵·2022년 12월 8일
0

GIS 업무

목록 보기
2/3
post-thumbnail

PNU 값을 통해서 원천 시군구 코드를 구하는 방법을 알아보자.
추출하는 방법으로 Java 와 SQL Function 을 예로 들겠다.
워낙 간단한 거라서 다른 프로그래밍 언어를 사용해도 충분히 추출할 수 있다.
참고로 구제시와 관련된 것도 고려한 추출법이다.

Java

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;
    }
}



PostgreSQL function

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;
profile
백엔드를 계속 배우고 있는 개발자입니다 😊

0개의 댓글