• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

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

24.03.01 16:12 작성 조회수 74

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

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

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.03.03

안녕하세요, 인프런 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 문에 의해 생성된 새로운 컬럼에 이름을 부여하는 것으로, 필수는 아니지만 결과를 더욱 명확하게 해줍니다.

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