Searched by NAVER

알티베이스강좌  :  큐브리드강좌  :  오라클강좌  :  오라클팁  :  오라클사용자팁  :  Oracle Blogs  :  오라클Q&A  :  오라클자료실  :  IT컬럼/소식  :  좋은글감동  :  방명록
Oracle 질문과 답변 oracleclub.com
검색조건이 여러개 중에서 몇개만 들어올때 어떻게 해야되나요?
손님 : 2009-07-02 21:46  
주소복사

SELECT B.CUST_NUM      -- 고객번호
      ,A.REGI_STS      -- 등록상태
      ,A.REG_YMD       -- 등록일자
      ,D.SOC_NUM       -- 주민사업자번호
      ,D.CUST_NM       -- 성명
      ,D.BIZ_REGI_NUM  -- 사업자번호
      ,E.REPRE_NM      -- 대표자명
      ,A.CNL_YMD       -- 해제일자
      ,A.CNL_WHY       -- 해제사유
      ,B.AGREE_YN      -- 동의여부
      ,(SELECT NAME
        FROM   E21.E2AT_EMP_BASE_INF  -- 사원기본정보 T
        WHERE  EMPID = A.CRT_EMPID)  -- 등록자
      ,A.CRT_EMPID     -- 등록사번
FROM   C21.C2FT_CREDIT_INF A  -- 고객신용정보 T
      ,C21.C2FT_EARLY_ALAM B  -- 조기경보 T
      ,C11.C1BT_USE_CONT   C  -- 사용계약 T
      ,C11.C1AT_CUST_INFO  D  -- 고객정보 T
      ,C11.C1AT_BIZ_REGI   E  -- 사업자등록증 T
      ,C31.C3AT_INST_PLACE F  -- 설치장소
      ,A11.A1AV_ZIP_CENTER G  -- 우편번호VIEW
      ,C41.C4AT_CENT_INF   H  -- 고객센터정보
WHERE  A.CREDIT_REG_TYPE  = ’20’  -- 신용등록유형
AND    A.CREDIT_TREAT_STS = ’30’  -- 신용처리상태(처리완료)
AND    B.SOC_BIZ_NUM      = A.SOC_BIZ_NUM
AND   (B.JOB_YMD           -- 작업일자
      ,B.SEQ               -- 일련번호
      ) IN (SELECT /*+ INDEX_DESC(X C2FX_0_EARLY_ALAM) */
                   JOB_YMD           -- 작업일자
                  ,SEQ
            FROM   C21.C2FT_EARLY_ALAM
            WHERE  SOC_BIZ_NUM    = A.SOC_BIZ_NUM
--            AND    NONPAY_JOB_STS = ’80’  -- 체납작업상태(처리완료)
            AND    ROWNUM = 1
            )
AND    C.USE_CONT_NUM         = B.USE_CONT_NUM
AND    D.CUST_NUM             = B.CUST_NUM
AND    E.BIZ_REGI_NUM         = D.BIZ_REGI_NUM   
AND    F.INST_PLACE_NUM       = C.INST_PLACE_NUM
AND    G.ZIP_SEQ              = F.ZIP_SEQ
AND    H.CENTER_CD            = G.CENTER_CD
AND    H.BRANCH_CD         LIKE ’’||’%’   -- 지사
AND    C.NONPAY_MANAGE_SEC LIKE ’’||’%’   -- 체납관리부문
AND    G.CITY              LIKE ’’||’%’
AND    G.COUNTY            LIKE ’’||’%’
AND    G.TOWN              LIKE ’’||’%’
;

위 쿼리의 밑에 LIKE 조건들 중 일부만 들어오게 되면 조건에 따라서 쿼리의 실행계획이 바뀌는데 
들어오는 조건에 상관없이 실행계획이 나오게 하려면 어떻게 해야되나요?
UNION ALL 을 사용해서 안들어오는 조건은 공집합으로 만들어야 되는거 같은데요..

조회수 135,  추천수 0
글 등 록 글 답 변 글 수 정 목록보기
※ 로그인하여 작성한 글만 삭제할 수 있습니다. 로그인
이름 쓰기
도움 주시는 곳