인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

jihyeong Lee님의 프로필 이미지

작성한 질문수

[백문이불여일타] 데이터 분석을 위한 중급 SQL

CASE를 활용한 테이블 피봇 리트코드 문제풀이(난이도 상)

별칭이 전체 테이블을 못 불러와요.

해결된 질문

작성

·

65

0

안녕하세요, 현재 CASE를 활용한 테이블 피복 리트코트 문제풀이(난이도 상)을 듣고 있는데 선생님과 동일하게 작성하면 저는 왜 자꾸 오류가 날까요...

Screenshot 2025-01-22 at 23.24.28.png.webp

.

답변 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 인턴님의 프로필 이미지

안녕하세요, 인프런 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 문과 * 사이에 콤마가 제대로 삽입되어야 전체 테이블의 컬럼을 불러올 수 있습니다.

올바른 방식으로 쿼리를 작성해 보시고 문제가 해결되는지 확인해 보시길 바랍니다.

이미지에 관련된 추가적인 사항은 첨부된 내용을 참고해주세요: 이미지 출처.