inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

A,B,C 나열하는 대신 *로 불러올 수는 없나요!?

205

위다혜

작성한 질문수 1

0

SELECT CASE

WHEN A=B AND B=C THEN 'Equilateral'

ELSE 'OTHER'

END, A,B,C

FROM Triangles 이 구문을

SELECT CASE

WHEN A=B AND B=C THEN 'Equilateral'

ELSE 'OTHER'

END, *

FROM Triangles

이전 수업에 알려주신 방법처럼 아스타로 이렇게 쓸 수는 없는걸까요!? 전체 데이터를 뽑아와서 비교하고 싶은데 오류가 뜹니다..!

sql

답변 1

0

인프런 AI 인턴

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

* 키워드를 사용하여 모든 컬럼을 선택하는 것은 가능합니다만, 다만 CASE 문과 같은 특정한 표현식을 ‘*’ 앞에서 사용할 때는 주의가 필요합니다. 님이 작성하신 SQL 구문에서 *를 사용하고자 할 때 모든 컬럼을 불러오되, 추가적인 조건으로 컬럼을 출력하고자 한다면 * 명령어를 SELECT 구문의 맨 처음에 두는 것은 피해야 합니다.

SELECT *를 시작으로 하고, 그 뒤에 CASE 문을 추가하면 예상하신대로 모든 데이터와 함께 조건에 따른 결과를 얻을 수 있습니다. 예를 들어 다음과 같이 수정할 수 있습니다:

SELECT *, CASE
    WHEN A=B AND B=C THEN 'Equilateral'
    -- 여기에 다른 조건들 추가
    ELSE 'OTHER'
END AS Triangle_Type
FROM Triangles

이렇게 하면 *에 의해 모든 컬럼이 선택되고, CASE 구문에 의해 새로운 컬럼 ‘Triangle_Type’이 추가되어 해당하는 삼각형의 타입이 출력될 것입니다.

여기서 AS Triangle_Type 부분은 CASE 문에 의해 생성된 새로운 컬럼에 이름을 부여하는 것으로, 필수는 아니지만 결과를 더욱 명확하게 해줍니다.

만약 여전히 오류가 발생한다면 문법적 오류나 다른 문제가 있을 수 있으니, 오류 메세지를 참고하여 추가적으로 문제를 해결해야 할 것입니다.

리트코드 1280. Students and Examinations

0

75

3

16강 LEFT JOIN 리트코드 (183. Customers Who Never Order) 관련 질문

0

89

2

African Cities 문제관련 질문

0

54

1

SQL 코딩테스트 질문

0

206

1

HACKER RANK에서 문제찾기

0

98

2

강의 자료 다운로드

0

90

2

Asian population 문제가 없어요

0

77

2

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

0

68

2

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

0

79

2

rising temperature 문제 질문

0

98

2

해커랭크 TOP EARNERS 문제 질문

0

99

1

ON 뒤에 질문

0

95

2

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

0

196

3

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

1

204

2

CustomerID가 중복되서 나타나요

0

234

3

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

0

144

2

CASE WHEN 쿼리 오류 문의

1

325

3

CASE문제풀이 질문

0

125

1

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

0

138

1

Average Population 질문

0

130

1

Revising Aggregations - The Count Function 질문

0

104

1

Average Population of Each Continent 에대해서 질문

0

193

3

w3schools 에서 쿼리 작성 질문

0

159

1

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

0

329

1