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

.
Answer 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 문과 * 사이에 콤마가 제대로 삽입되어야 전체 테이블의 컬럼을 불러올 수 있습니다.
올바른 방식으로 쿼리를 작성해 보시고 문제가 해결되는지 확인해 보시길 바랍니다.
이미지에 관련된 추가적인 사항은 첨부된 내용을 참고해주세요: 이미지 출처.
리트코드 1280. Students and Examinations
0
74
3
16강 LEFT JOIN 리트코드 (183. Customers Who Never Order) 관련 질문
0
89
2
African Cities 문제관련 질문
0
53
1
SQL 코딩테스트 질문
0
206
1
HACKER RANK에서 문제찾기
0
96
2
강의 자료 다운로드
0
90
2
Asian population 문제가 없어요
0
76
2
INNER JOIN 에서 A.키 쓸때 빨간 색 나오고 'dause'
0
66
2
별칭 관련해서 질문 있습니다.
0
79
2
rising temperature 문제 질문
0
98
2
해커랭크 TOP EARNERS 문제 질문
0
98
1
ON 뒤에 질문
0
94
2
INNER JOIN 질문. 강의와 결과값이 다릅니다.
0
196
3
END, 뒤에 * 붙이면 에러가 뜹니다
1
203
2
CustomerID가 중복되서 나타나요
0
232
3
CASE WHEN 쿼리 오류 문의
1
324
3
CASE문제풀이 질문
0
124
1
Customers Who Never Order 풀다가 Alias관련 질문사항
0
136
1
Average Population 질문
0
129
1
Revising Aggregations - The Count Function 질문
0
103
1
Average Population of Each Continent 에대해서 질문
0
192
3
w3schools 에서 쿼리 작성 질문
0
158
1
INNER JOIN 할 때 NULL 값이 안보일 수도 있나요?
0
328
1
new_category 그룹핑 시 에러 (밑에분과 동일)
1
184
1

