본문 바로가기
데이터베이스/Postgresql

조건에 따른 값 보여주기

by cbwstar 2021. 7. 17.
728x90
반응형

조건에 따라 다른값을 보여주는 CASE WHEN ~ END 구문에 대해 알아보자.

 

CASE WHEN 구문을 간단하게 설명하자면 아래와 같다.

CASE WHEN condition_1 THEN result_1
        WHEN condition_2 THEN result_2
        [WHEN...]
        [ELSE else_result]
END

여기서 ELSE 부분 역시 생략이 가능하지만 위에서 만족하는 조건이 없으면 NULL을 반환하니 상황에 따라 뭐라도 넣어주는것이 좋을 수 있다.

 

CASE WHEN 구문은 PostgreSQL 에서만 존재하는건 아니라서 오라클 등등에서 사용할 수 있으니 이참에 잘 알아두자.

 

▶예제1) 일반 구문 형식

sql
닫기
SELECT CASE WHEN score IS NOT NULL THEN 'D' ‌‌ELSE 'F' ‌‌END AS code_score FROM mine

 

▶예제2) CASE WHEN 다중 구문

sql
닫기
SELECT CASE WHEN score > 90 THEN 'A' ‌‌‌WHEN score > 70 THEN 'B' ‌‌‌WHEN score > 50 THEN 'C' ‌‌‌WHEN score > 30 THEN 'D' ‌‌‌ELSE 'F' ‌‌END AS code_score FROM mine

 

▶예제3) CASE WHEN 중첩 구문

sql
닫기
SELECT CASE WHEN score > 90 THEN ‌‌‌‌CASE WHEN score >= 95 THEN 'A+' ‌‌‌‌‌​ELSE 'A' ‌‌‌‌END ‌‌‌WHEN score > 70 THEN ‌‌‌‌CASE WHEN score >= 80 THEN 'B+' ‌‌‌‌‌​ELSE 'B' ‌‌‌‌END ‌‌‌WHEN score > 50 THEN ‌‌‌‌CASE WHEN score >= 60 THEN 'C+' ‌‌‌‌‌​ELSE 'C' ‌‌‌‌END ‌‌‌WHEN score > 30 THEN 'D' ‌‌‌ELSE 'F' ‌‌END AS code_score FROM mine

이 밖에도 사용자 정의 함수(function) 호출, where 절에서의 사용 등 사용처가 많으니 알아두면 좋다.

728x90
반응형


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."