해결된 질문
작성
·
65
0
안녕하세요, 현재 CASE를 활용한 테이블 피복 리트코트 문제풀이(난이도 상)을 듣고 있는데 선생님과 동일하게 작성하면 저는 왜 자꾸 오류가 날까요...
.
답변 2
0
안녕하세요. 답변이 늦어 죄송합니다.
MySQL에서 테이블을 지정하지 않은 *는 단독으로 사용하거나, SELECT의 첫 번째 항목으로만 사용할 수 있습니다. 촬영 당시 정상적으로 실행이 되었던 것이 잘못된 것이었고, 촬영 이후 실습 환경에 변화가 있어서 오류가 수정된 것으로 보입니다.
아래 처럼 작성하면 같은 결과를 출력해보실 수 있습니다.
1. SELECT의 첫 번째 항목으로 기술
SELECT *
, CASE WHEN categoryid = 1 THEN price ELSE NULL END AS category1_price
FROM Products
2. 테이블을 지정하여 *를 사용
SELECT CASE WHEN categoryid = 1 THEN price ELSE NULL END AS category1_price
, Products.*
FROM Products
강의 하단에도 수정된 내용 반영해놓겠습니다. 좋은 질문 감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
jihyeong Lee님, SQL 쿼리에서 오류가 발생하신 이유는 , *
의 사용에 문제가 있기 때문입니다. *
를 활용하여 전체 테이블의 컬럼을 가져올 때는 CASE
문 뒤에 콤마를 추가해야 합니다.
잘못된 쿼리:
SELECT CASE WHEN categoryid = 1 THEN price ELSE NULL END AS category1_price, *
FROM Products
올바른 쿼리:
SELECT CASE WHEN categoryid = 1 THEN price ELSE NULL END AS category1_price, *
FROM Products
여기서 CASE
문과 *
사이에 콤마가 제대로 삽입되어야 전체 테이블의 컬럼을 불러올 수 있습니다.
올바른 방식으로 쿼리를 작성해 보시고 문제가 해결되는지 확인해 보시길 바랍니다.
이미지에 관련된 추가적인 사항은 첨부된 내용을 참고해주세요: 이미지 출처.