/*****************************************************************************
* 1.SP명: 우편번호테이블에서 시도,구군,읍면동 리스트 가져오기
* 2.작성일: 2010-01-01
* 3.작성자: 김종문
* 4.INPUT PARAMETERS
* I_ZIPCODE : 우편번호
* 5.OUTPUT PARAMETERS :
* 레코드셋
* 1)I_KIND: 검색 구분 1:시도, 2:구군, 3:읍동
* 2)I_NAME: 검색 명 I_KIND=1:null,I_KIND=2:시도명,I_KIND=3:시도||' '구군,
* 5)O_RESULT : 0=성공, 그외SQLERRORCODE=실패
*****************************************************************************/
주석샘플
PROCEDURE SP_LIST_ZIPCODE (I_KIND IN NUMBER, I_NAME IN VARCHAR2,
C OUT RC, O_RESULT OUT NUMBER)
AS
BEGIN
IF I_KIND = 1 THEN
OPEN C FOR
SELECT DISTINCT SIDO AS List
FROM WYE_POST ;
ELSIF I_KIND = 2 THEN
OPEN C FOR
SELECT DISTINCT GUGUN AS List
FROM WYE_POST
WHERE SIDO = I_NAME ;
ELSIF I_KIND = 3 THEN
OPEN C FOR
SELECT DISTINCT DONG AS List
FROM WYE_POST
WHERE SIDO||' '||GUGUN = I_NAME ;
END IF;
O_RESULT := 0; --성공
EXCEPTION
WHEN OTHERS THEN
O_RESULT := SQLCODE ; -- 실패
END SP_LIST_SIDOGUGUNDONG;
위에꺼 보다는
SELECT YK.KINDERGARTEN_NO
,YK.KINDERGARTEN_NAME
,YK.ZIP_CODE
,YK.SIDO
,YK.GUGUN
,YK.DONG
FROM YRCUSTOMER.YRC_KINDERGARTEN YK
WHERE (:I_GUBUN = 1 ) -- 전체보기
OR (:I_GUBUN = 2 AND YK.SIDO LIKE :I_SEARCH||'%' ) -- GUBUN : 시도 선택(2)
OR (:I_GUBUN = 3 AND YK.GUGUN LIKE :I_SEARCH||'%' ) -- GUBUN : 구/군 선택(3)
OR (:I_GUBUN = 4 AND YK.DONG LIKE :I_SEARCH||'%' ) -- GUBUN : 동 선택(4)
;
이렇게 하는게 좀더 짧게~
OR로 묶는게 얼마나 속도 차이가 있을지는 모르겠음.