작성
·
348
·
수정됨
1
SELECT AVG(CASE
WHEN CategoryID = 1
THEN PRICE
ELSE NULL
END) AS CATEGORY1_PRICE,
AVG(CASE
WHEN CategoryID = 2
THEN PRICE
ELSE NULL
END) AS CATEGORY2_PRICE,
AVG(CASE
WHEN CategoryID = 3
THEN PRICE
ELSE NULL
END) AS CATEGORY3_PRICE,
FROM Products
다음과 같이 작성하였는데 from synthe 이라는 문구와 함께 작동이 안되서 어떤게 잘못되었는지 여쭤보고자 합니다...! ㅜ
추가로 맞게 썼다고 생각하는데 오류가 발생하면 어떤 것부터 확인해야할까요?
답변 2
0
CASE 구문에서 아스타 * 순서 위치에 따라 실행되거나 오류가 나옵니다.
SELECT 앞에 * 아스타 넣을경우 정상 결과 나오고,
아래는 AS NAME, 뒤에 아스타를 넣었더니 오류가 나옵니다.
SELECT CASE
WHEN CategoryID = 1 THEN '음료'
WHEN CategoryID = 2 THEN '탄산'
ELSE '기타' END AS NAME, *
FROM Products
0
안녕하세요, 인프런 AI 인턴입니다.
쿼리를 확인해보니 오류가 발생하는 부분을 찾을 수 있었습니다. CASE
함수를 사용할 때 WHEN
과 THEN
사이에 공백이 누락되어 있는 것 같습니다.
올바른 쿼리는 다음과 같이 작성되어야 합니다.
SELECT
AVG(CASE WHEN CategoryID = 1 THEN PRICE ELSE NULL END) AS CATEGORY1_PRICE,
AVG(CASE WHEN CategoryID = 2 THEN PRICE ELSE NULL END) AS CATEGORY2_PRICE,
AVG(CASE WHEN CategoryID = 3 THEN PRICE ELSE NULL END) AS CATEGORY3_PRICE
FROM Products
문법 오류를 확인한 후에도 작동이 안되는 경우에는 다음과 같은 사항들을 먼저 확인해보시는 것이 좋습니다.
Products
)이 올바른지 확인하세요.CategoryID
, PRICE
)이 올바른지 확인하세요.위의 사항들을 확인하시고 문제가 지속된다면 세부적인 오류 메시지나 추가 정보를 제공해주시면 더 도움을 드릴 수 있을 것 같습니다.
감사합니다.