inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

CASE

CASE 아스타 위치에 따른 오류 문제

478

윤원국

작성한 질문수 2

0

영상에서 선생님 구문데로 실행했는데 아스타 위치에 따라 작동이 됩니다.

아스타를 SELECT 뒤에 *, 정상작동하나 AS NAME 뒤에서붙였을땐 오류가 나오는데 뭐가 문제일까요?

정상실행 경우(SELECT *, CASE )

오류 발생

END AS NAME, *

SELECT CASE

WHEN CategoryID = 1 THEN '음료'

WHEN CategoryID = 2 THEN '탄산'

ELSE '기타' END AS NAME, *

FROM Products

 

 

 

sql

답변 2

0

서영주

이걸 강의중에 코멘트 해주세요....계속 에러나오는데

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

님의 SQL 쿼리에서 CASE 구문을 사용하실 때 주의해야 할 점이 있습니다.
쿼리의 SELECT 절에서 별표()를 사용해 모든 컬럼을 불러오시려고 하실 때, 다른 컬럼 혹은 표현식을 별표() 앞에 명시하실 경우에는 문제가 없습니다.
그러나 별표(*)를 사용한 후에, 추가로 컬럼이나 표현식을 명시할 때는 반드시 콤마(,)로 구분해 주셔야 합니다.

예를 들어, 정상적으로 작동하는 경우에는 다음과 같습니다:

SELECT *, CASE
WHEN CategoryID = 1 THEN '음료'
WHEN CategoryID = 2 THEN '담배'
ELSE '기타' END AS NAME
FROM Products

하지만, 별표(*) 이후에 CASE 구문을 사용하시려면 다음과 같이 콤마를 추가하여 구분해주셔야 합니다:

SELECT CASE
WHEN CategoryID = 1 THEN '음료'
WHEN CategoryID = 2 THEN '탄산'
ELSE '기타' END AS NAME, *
FROM Products

위 코드에서 END AS NAME, * 부분에서 콤마가 없어서 문법 오류가 발생했습니다.

올바른 구문으로 수정하면 다음과 같습니다:

SELECT
CASE
WHEN CategoryID = 1 THEN '음료'
WHEN CategoryID = 2 THEN '탄산'
ELSE '기타' END AS NAME,
*
FROM Products

제대로 작동하는지 확인하시려면 수정한 쿼리를 실행해 보시기 바랍니다.

0

윤원국

제가 질문드린 예제를 보시면 SELECT *, CASE 부분은 정상작동한다고 적어놨습니다. 지금 오류가발생한 부분은 END AS NAME, * <- 여기서 NAME 뒤에 콤마를 넣고 * 를 입력했는데 오류가 발생한 겁니다. 올바른 구문으로 수정해주신거와 제가 오류로 발생됬다고 적은 구문이랑 지금 차이가 없어 보이며, 작동이 안됩니다. 제 질문 제대로 보고 답변하신게 맞는지 아님 진짜 AI인가요?

SELECT CASE

WHEN CategoryID = 1 THEN '음료'

WHEN CategoryID = 2 THEN '탄산'

ELSE '기타' END AS NAME, *

FROM Products

2

지식공유자 J

AI의 답변에 오류가 있었네요. 죄송합니다.

올려주신 코드처럼 *가 다른 컬럼 뒤에 오는 것은 MySQL이 지원하지 않습니다.

이 때는 * 앞에 테이블명을 함께 붙여주면 해결 가능합니다.

SELECT CASE WHEN CategoryID = 1 THEN '음료'
            WHEN CategoryID = 2 THEN '탄산'
            ELSE '기타' END AS NAME,
       Products.*
FROM Products

리트코드 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

94

2

강의 자료 다운로드

0

89

2

Asian population 문제가 없어요

0

76

2

INNER JOIN 에서 A.키 쓸때 빨간 색 나오고 'dause'

0

65

2

별칭 관련해서 질문 있습니다.

0

78

2

rising temperature 문제 질문

0

98

2

해커랭크 TOP EARNERS 문제 질문

0

97

1

ON 뒤에 질문

0

94

2

INNER JOIN 질문. 강의와 결과값이 다릅니다.

0

196

3

END, 뒤에 * 붙이면 에러가 뜹니다

1

203

2

CustomerID가 중복되서 나타나요

0

232

3

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

0

142

2

CASE WHEN 쿼리 오류 문의

1

324

3

CASE문제풀이 질문

0

124

1

Customers Who Never Order 풀다가 Alias관련 질문사항

0

136

1

Average Population 질문

0

127

1

Revising Aggregations - The Count Function 질문

0

101

1

Average Population of Each Continent 에대해서 질문

0

189

3

w3schools 에서 쿼리 작성 질문

0

156

1

INNER JOIN 할 때 NULL 값이 안보일 수도 있나요?

0

327

1