[mysql/oracle] 조건별로 분류하여 주문상태 출력하기

2023. 9. 9. 00:17Programmers/SQL

문제 설명

 

문제

 

결과

 

mysql

1
2
3
4
5
6
SELECT  ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE, '%Y-%m-%d') AS OUT_DATE, 
        CASE WHEN DATE_FORMAT(OUT_DATE, '%m%d')<='0501' THEN '출고완료'
             WHEN DATE_FORMAT(OUT_DATE, '%m%d')>'0501' THEN '출고대기'
             ELSE '출고미정' END AS 출고여부
FROM FOOD_ORDER
ORDER BY ORDER_ID
cs

mysql에서 날짜처리는 DATE_FORMAT()을 이용하면 된다.

 

2023.01.20 - [DB] - [mysql/oracle] 날짜 형식 : DATE_FORMAT() / TO_CHAR

 

oracle

1
2
3
4
5
6
SELECT  ORDER_ID, PRODUCT_ID, OUT_DATE, 
        CASE WHEN TO_CHAR(OUT_DATE, 'MMDD')<='0501' THEN '출고완료'
             WHEN TO_CHAR(OUT_DATE, 'MMDD')>'0501' THEN '출고대기'
             ELSE '출고미정' END AS 출고여부
FROM FOOD_ORDER
ORDER BY ORDER_ID
cs

계속

ORA-00923: FROM keyword not found where expected

이 오류가 나서 뭔가 왜 이러나 했는데

AS 뒤에 이름을 정할 때 '출고여부'라고 따옴표를 이용해서 그랬다.