오라클 쿼리 문의....;; 0 2 1,804

by 스물일곱 [2008.07.21 15:34:33]


안녕하세요. 오라클 쿼리에 대해서 문의합니다.

가령 메일수신확인이라는 리스트를 뽑아냅니다.

검색조건에는. 발행일자로 검색할수 있고 수신일자로 검색을 할수 있습니다.

조건에는 전체. 수신. 미수신. 등등 여러가지의 조건이 있습니다.

현재 문제가 되는 부분은. 수신일자로 검색할경우 조건의 전체.미수신 <<요 2가지때문에 머리가 아프네요.

발행일자로 검색할경우에는 DB에 INSERT날짜로 저장하기때문에 아무런 문제가 없습니다. 이건 메일 발송시 필히 들어가는 부분이니깐요

문제는 수신일자인데 이게 메일받은사람이 메일을 열었을경우에만 DB에 수신일자컬럼명에 열어본 날짜가 들어갑니다.

기존에는 NULL로 아무런 값이 안들어 가 있구요.

수신일자로 검색시 날짜가 들어가있으면 아무런 문제가 없지만. 날짜가 들어가 있지 않는건. 수신일자로 검색해도 아무런 데이타가 나오지 않게됩니다...

이걸 어떻게 해야 할지...;;

조건을 어떻게 넣어야 할지...회전을 하고 있기는 한데 아직도 답을 못찾고 있따능...

고수님들의 도움을..요청합니다.

by 현 [2008.07.21 16:00:15]
nvl로 수신일자를 형변환시키는 것이 가장 편리한 방법이지만,
대부분 이런 경우에 수신일자에 인덱스가 걸려있을 확률이 많은데
nvl로 형변환을 하게되면 인덱스를 태우지 못합니다.
따라서 union all로 두 조건을 구분해서 처리하시면 되실듯 합니다.

by 이지웅 [2008.07.21 16:02:06]
(수신일자 is null or 수신일자 >= '20080621')
수신일자 인덱스가 있다면 union all로 sql을 분리해서 돌려보세요..
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입