
정답
SELECT CASE
WHEN A = B AND B = C THEN 'Equilateral'
WHEN A + B <= C OR A + C <= B OR B + C <= A THEN 'Not A Triangle'
WHEN A = B or A = C OR B = C THEN 'Isosceles'
ELSE 'Scalene'
END
FROM TRIANGLES
- WHEN 구문은 처리되는 순서대로 데이터 값이 빠져나간다.
- WHEN 구문에 해당되는 조건에 맞는 데이터들은 이미 빠져나가므로 밑의 WHEN 구문 조건에 해당되지 않는다.
- 반대로 말하면 위의 조건을 충족시켜버리면 값이 빠져나가 밑의 조건에서 실행되지 않기 때문에 위 문제와 같이 (이등변 삼각형, 정삼각형, 삼각형이 아닌 것)을 구하는 조건에선 WHEN 구문의 데이터 값들을 처리하는 순서가 중요하다.
조건에 맞게 쿼리를 작성했는지 확인해보려면 한줄씩 작성하고 SELECT 작성한 쿼리 , * 를 통해 예측한 결과와 맞게 작동하였는지 확인해가며 쿼리를 작성해나가자