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) 일반 구문 형식
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
반응형
'데이터베이스 > Postgresql' 카테고리의 다른 글
[PostgresSQL] postgresql 백업 및 복원 (0) | 2021.07.21 |
---|---|
[PostgresSQL] 테이블의 컬럼정보확인 (0) | 2021.07.17 |
[PostgreSQL] 다른테이블 복사하여 새로운 테이블 생성 (0) | 2021.07.17 |
[PostgreSQL] 데이터 있으면 update 없으면 insert (0) | 2021.07.17 |
[PostgreSQL] 시퀀스 생성 및 사용 (0) | 2021.07.17 |
댓글