728x90
반응형
PostgreSQL에서 조건에 따라 다른값을 보여주는 CASE WHEN ~ END 구문에 대해 알아보자.
▷ 구문
CASE WHEN condition_1 THEN result_1
WHEN condition_2 THEN result_2
[WHEN...]
[ELSE else_result]
END
여기서 ELSE 부분 역시 생략이 가능하지만 위에서 만족하는 조건이 없으면 NULL을 반환하니 상황에 따라 뭐라도 넣어주는것이 좋을 수 있다.
CASE WHEN 구문은 PostgreSQL 에서만 존재하는건 아니라서 오라클 등등에서 사용할 수 있으니 이참에 잘 알아두자.
▶예제1) 일반 구문 형식
SELECT
CASE WHEN score IS NOT NULL THEN 'D'
ELSE 'F'
END AS code_score
FROM mine
▶예제2) CASE WHEN 다중 구문
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 중첩 구문
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
반응형
'Study > PostgreSQL' 카테고리의 다른 글
[PostgreSQL] 시간값 다루기 (0) | 2023.05.23 |
---|---|
[PostgreSQL] 문자열 합치기(concat , ||) (0) | 2023.05.22 |
postgresql 소숫점 2자리 (0) | 2023.04.25 |
[postgreSQL] 날짜/시간 함수 (1) | 2023.04.11 |
[POSTGRES] 여러개의 행 하나의 행으로 표현하기 (0) | 2023.03.28 |
댓글