
프로그래머스 SQL 고득점 KIT 내 IS NULL 문제
Level 1. 잡은 물고기의 평균 길이 구하기.
잡은 물고기의 평균 길이를 출력하는 SQL문을 작성해주세요.
평균 길이를 나타내는 컬럼 명은 AVERAGE_LENGTH로 해주세요.
평균 길이는 소수점 3째자리에서 반올림하며, 10cm 이하의 물고기들은 10cm 로 취급하여 평균 길이를 구해주세요.
사용할 함수 정하기
IF와 IFNULL을 사용한다면 좀 더 간단하게 할 수 있을 것이다.CASE 구문을 사용하겠다.MY SQL & 오라클 - 공통구문 CASE 사용
SELECT ROUND(AVG
(CASE
WHEN LENGTH IS NULL
THEN 10
ELSE ROUND(LENGTH,2)
END),2)
AS AVERAGE_LENGTH
FROM FISH_INFO ;
CASE 구문 정리 (CASE 다음 무엇이 오는가)
CASE WHEN ---CASE 컬럼명 WHEN 값 THEN ---
단순 CASE (CASE WHEN - 다양한 조건 가능)
SELECT ITEM_NAME, CASE WHEN PRICE >= 10000 THEN 'Expensive' WHEN PRICE BETWEEN 5000 AND 9999 THEN 'Medium' ELSE 'Cheap' END AS PRICE_CATEGORY FROM ITEM_INFO;
- 여러 조건을 비교할때 사용.
- 가장 유연하게 사용할 수 있음!
CASE 컬럼명 WHEN 값 THEN - 특정값 비교
SELECT ITEM_NAME, CASE PRICE WHEN 10000 THEN 'Expensive' WHEN 5000 THEN 'Medium' ELSE 'Cheap' END AS PRICE_CATEGORY FROM ITEM_INFO;
- 특정 값과 일치하는지 체크!
BETWEEN>비교연산자 불가.
(WHEN PRICE >= 1000같은 비교 불가능!)