2023-03-14 TIL 15강 CASE 문으로 데이터 변환하기
검색 CASE : CASE WHEN 조건식 THEN 식 ...
- RDBMS에 갖추어져 있는 기존의 연산자나 함수만으로는 처리할 수 없는 것을 처리해줌
- 예를 들면, NULL값으로 연산한 결과는 모두 NULL이 되지만, NULL 값을 0으로 계산하고 싶은 경우
select a, case when a is null then 0 else a end "a(null=0)" from sample37;
select a as '코드',
-> case
-> when a = 1 then '남자'
-> when a = 2 then '여자'
-> else '미지정'
-> end as '성별' from sample37;
COALESCE : NULL값을 0으로 반환하는 함수
select a, coalesce(a, 0) from sample37;
디코드와 인코드
- 디코드 : 문자화(남자, 여자)
- 인코드 : 수치화(1, 2)
단순 CASE : CASE 식 WHEN 식 THEN 식 ...
- 단순 CASE는 CASE 뒤에 식을 기술하고 WHEN 뒤에 (조건식이 아닌) 식을 기술한다
- CASE문의 ELSE는 생략하지 않고 지정하자
select a as '코드',
-> case a
-> when 1 then '남자'
-> when 2 then '여자'
-> else '미지정'
-> end as '성별' from sample37;
WHEN에 NULL 지정하기
- NULL은 단순 CASE문으로 NULL값을 비교할 수 없다
- 검색 CASE문으로 NULL을 판정한다
select a as '코드',
-> case
-> when a = 1 then '남자'
-> when a = 2 then '여자'
-> when a is null then '데이터 없음'
-> else '미지정'
-> end as '성별(null=데이터 없음)' from sample37;