포스트

조건에 부합하는 중고거래 상태 조회하기

https://school.programmers.co.kr/learn/courses/30/lessons/164672

문제

  • 문제 풀이

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
      -- 날짜 형식을 문자열로 변환하여 비교
      SELECT BOARD_ID, 
             WRITER_ID, 
             TITLE, 
             PRICE, 
             CASE 
                 WHEN STATUS = 'SALE' THEN '판매중'
                 WHEN STATUS = 'RESERVED' THEN '예약중'
                 WHEN STATUS = 'DONE' THEN '거래완료'
                 END AS STATUS
      FROM USED_GOODS_BOARD       
      WHERE TO_CHAR(CREATED_DATE, 'YYYY-MM-DD') = '2022-10-05'       
      ORDER BY BOARD_ID DESC;
    


    • TO_CHAR(CREATED_DATE, 'YYYY-MM-DD')를 사용하여 CREATED_DATE를 문자열로 변환하여 비교하는 것보다 CREATED_DATE 자체를 날짜로 비교하는 것이 성능상 더 효율적이다.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
      -- TO_DATE 함수를 사용하여 날짜 자체를 비교하는 것이 더 성능적으로 효율적이다.
      SELECT
          BOARD_ID,
          WRITER_ID,
          TITLE,
          PRICE,
          CASE
              WHEN STATUS = 'SALE' THEN '판매중'
              WHEN STATUS = 'RESERVED' THEN '예약중'
              ELSE '거래완료'
          END AS "STATUS"
      FROM
          USED_GOODS_BOARD
      WHERE
          CREATED_DATE >= TO_DATE('2022-10-05', 'YYYY-MM-DD')
          AND CREATED_DATE < TO_DATE('2022-10-06', 'YYYY-MM-DD')
      ORDER BY
          BOARD_ID DESC;
    


  • 실행 결과

실행 결과

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.