START_YMD(출발일) 이라는 컬럼이 있는데,
오늘날짜기준 출발일에 가까운 목록을 먼저 표출하고(신청가능목록), 그 이후에 나머지 목록(신청불가능목록)을 표출해야 합니다.
그런데, 신청가능목록은 오늘날짜와 가까운 출발일로 표출해야하고(오름차순), 신청불가능목록은 내림차순으로 표출해야 합니다.
예를들어, 오늘 날짜가 10/30이면 신청가능 목록이 10/31, 11/1, 11/2.... 이렇게이며
신청불가능 목록은 10/30, 10/29, 10/28... 이렇게 표출되어야 합니다.
CASE WHEN 1 ELSE 2 이런식으로 처리하니까 목록표출은 되는데 오름차순, 내림차순 각각 정렬이 안되네요ㅠㅠ
방법이 있을지 도움 부탁드립니다..ㅠㅠ
WITH t AS ( SELECT '2023-10-28' start_ymd FROM dual UNION ALL SELECT '2023-10-29' FROM dual UNION ALL SELECT '2023-10-30' FROM dual UNION ALL SELECT '2023-11-01' FROM dual UNION ALL SELECT '2023-11-02' FROM dual UNION ALL SELECT '2023-11-03' FROM dual ) SELECT start_ymd FROM t ORDER BY CASE WHEN start_ymd > TO_CHAR(sysdate, 'yyyy-mm-dd') THEN start_ymd END ASC , CASE WHEN start_ymd <= TO_CHAR(sysdate, 'yyyy-mm-dd') THEN start_ymd END DESC ;