SELECT MAX(A.DE)
FROM TC_CALENDAR A
WHERE A.HOLIDAY_CHCK = 'N'
AND A.DFK != 7
AND A.DE >= '20180112'
AND ROWNUM <= DECODE(SUBSTR('4001171307861',13),'2',20,'5',20,30);
조회시 휴일제외 30일이후일자('20180226')가 나와야하는데 10달후 날짜가 나오네요..
위 쿼리를 조회한 결과와 order by를 추가한 결과가 다르던데... 이유가 무었인지 몰라 질문을 올립니다..
글쎄요? 일부만 캡쳐해 올리셔서..
ORDER BY 를 붙이신 건지 아닌지 판단이 안서네요.
해당 컬럼 de 에 인덱스가 있는지 확인하셔야 하구요.
각각의 쿼리의 실행계획을 확인하셔야 합니다.
어찌 되었든 간에 가장 핵심은 Order By 가 없이는 정렬된 결과가 보장되지 않는다는 것입니다.
SELECT MAX(de) FROM (SELECT de FROM tc_calendar WHERE holiday_chck = 'N' AND dfk != 7 AND de >= '20180112' ORDER BY de ) WHERE ROWNUM <= DECODE(SUBSTR('4001171307861', 13), '2', 20, '5', 20, 30) ;