본문으로 바로가기

[SQL] 14. IF와 같은 역할, CASE WHEN

category Skills/SQL 2021. 8. 5. 13:56
반응형
기존에 있는 컬럼으로 조건에 따라 새로운 컬럼을 만들기도 함

 

조건에 따라 값 정해주기: CASE WHEN

CASE WHEN 조건1 THEN 결과1
           WHEN 조건1 THEN 결과2
           ...
           WHEN 조건N THEN 결과N ELSE 기본값 END
  • ELSE 기본값
    • 앞의 조건들에 모두 해당하지 않을 때 정해 줄 기본값 
    • ELSE 생략가능, 생략하면 조건에 해당하지 않는 값은 NULL
  • 새로운 컬럼을 만드는 것이기 때문에 SELECT에다가 써준다
습도를 구간으로 나타내기
SELECT humidity,
	CASE WHEN humidity>=0 AND humidity<30 THEN '건조'
		 WHEN humidity>=30 AND humidity<60 THEN '적정'
		 WHEN humidity>=60 AND humidity<=100 THEN '습함' ELSE 'ERROR' END AS humidity_group
FROM data.bike_sharing
정렬하고 싶은 순서에 따라 조건 앞에 '숫자_'0부터 차례로 표기한다
SELECT humidity,
	   CASE WHEN humidity>=0 AND humidity<30 THEN '0_건조'
	   		WHEN humidity>=30 AND humidity<60 THEN '1_적정'
	   		WHEN humidity>=60 AND humidity<=100 THEN '2_습함' ELSE '3_ERROR' END AS humidity_group
FROM data.bike_sharing
ORDER BY humidity_group
SELECT DISTINCT humidity,
	   CASE WHEN humidity>=0 AND humidity<30 THEN '0_건조'
	   		WHEN humidity>=30 AND humidity<60 THEN '1_적정'
	   		WHEN humidity>=60 AND humidity<=100 THEN '2_습함' ELSE '3_ERROR' END AS humidity_group
FROM data.bike_sharing
ORDER BY humidity_group DESC
반응형