inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

CASE 해커랭크 문제풀이

Type of Triangle 문제

258

지루한 청어

작성한 질문수 8

2

Type of Triangle 문제를 아래처럼 풀었는데요, 

SELECT CASE

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

         WHEN A = B AND 

              B != C THEN CASE

                            WHEN A + B > C AND 

                                 B + C > A AND 

                                 C + A > B THEN 'Isosceles'

                          END

         WHEN B = C AND 

              C != A THEN CASE

                            WHEN A + B > C AND 

                                 B + C > A AND 

                                 C + A > B THEN 'Isosceles'

                          END

         WHEN C = A AND 

              A != B THEN CASE

                            WHEN A + B > C AND 

                                 B + C > A AND 

                                 C + A > B THEN 'Isosceles'

                          END

        

         WHEN A != B AND

              B != C AND

              C != A THEN CASE

                            WHEN A + B > C AND 

                                 B + C > A AND 

                                 C + A > B THEN 'Scalene'

                          END

        ELSE 'Not A Triangle'

        END, A, B, C

FROM TRIANGLES

각 변의 길이가 20, 20, 40 / 20 12 61 / 20 22 50 일 때는 쿼리에서 정의를 안해준 것으로 해석하고 NULL으로 결과값이 나왔습니다.

Isosceles과 Scalene의 Nested Case 안에서 Else 'Not a Triagle'로 정의를 해주지 않아서 그런 것으로 보이는데, 저는 Else 정의가 없으면 계속 다음 쿼리로 넘어가고 맨 마지막 부분의 ELSE 'Not a Triagle'에서 케이스가 정의되지 않은 부분을  처리할 것으로 생각했거든요.

Nested Case 한 단계 위의 쿼리, 예를 들면

WHEN A != B AND

              B != C AND

              C != A 에 해당하는 조건이라면 무조건 Nested Case 안으로 넘어가고, 그 안에서 ELSE로 정의해줘야하는건가요?

답변 주시면 감사하겠습니다 :)

sql

답변 1

2

윤선미

CASE 안에서 정의되지 않은 경우의 수는 NULL이 됩니다.

예외를 지정해주고 싶다면 해당 CASE 안에서 ELSE 를 정의해주셔야 합니다 :)

답변이 충분히 되었을 것 같네요.

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

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

0

142

2

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

159

1

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

0

328

1