SELECT CASE
WHEN (A < B + C OR B < A+ C OR C < A + B) AND A = B = C THEN 'Equilateral'
WHEN (A < B + C AND B = C) OR (B < A + C AND A = C) OR (C < A + B AND A = B) THEN 'Isosceles'
WHEN (A < B + C OR B < A+ C OR C < A + B) AND A != B != C THEN 'Scalene'
ELSE 'Not A Triangle'
END
FROM triangles
조건을 A = B = C 라고 쓰면 적용이 안되더라 ...
조건문 순서에 따라 처리함 -> WHEN 절을 적어주는 순서가 중요 !
정삼각형은 이등변삼각형에 속하기 때문에 만약 이등변삼각형 조건을 먼저 적어준다면 정삼각형도 모두 이등변삼각형으로 분류됨
따라서 정삼각형을 처리해준 후, 삼각형이 아닌 애들을 먼저 제껴야함
CASE문 작성방법
조건이 여러개일때의 CASE문 작성방법
조건을 써줄때 WHEN절의 순서 배치가 중요함
SELECT CASE
WHEN A = B AND B = C THEN 'Equilateral'
WHEN B + C <= A OR A + C <= B OR A + B <= C THEN 'Not A Triangle'
WHEN A = B OR B = C OR C = A THEN 'Isosceles'
ELSE 'Scalene'
END,
-- A, B, C
FROM triangles
왜 A, B, C 자리에 * 쓰면 오류가 날까 ..
'SQL' 카테고리의 다른 글
[문법] LIKE (0) | 2023.12.28 |
---|---|
leetcode_reformat department table (0) | 2023.01.13 |
HackerRank_SQL_Top Eearners (0) | 2023.01.11 |
HackerRank_SQL_Weather Observation Station 15, 소숫점 (0) | 2023.01.05 |
HackerRank_SQL_Higher Tan 75 Marks, 문자열 자르기 (0) | 2023.01.05 |