반응형
특정 조건에 따라 분기할 때 CASE 식을 사용한다. CASE 식은 4가지 종류가 있다.
- 기본 CASE
- 심플 CASE
- COALESCE
- NULLIF
▼ 기본 CASE
CASE
{WHEN <조건식> THEN <스칼라식>}+
ELSE <스칼라식>
select
case when m.age <= 10 then '학생요금'
when m.age >= 60 then '경로요금'
else '일반요금'
end
from Member m
▼ 심플 CASE
심플 CASE는 조건식을 사용할 수 없지만 문법이 단순하다. 자바의 switch case문과 비슷하다.
CASE <조건대상>
{WHEN <스칼라식1> THEN <스칼라식2>}+
ELSE <스칼라식>
END
select
case t.name
when '팀A' then '인센티브110%'
when '팀B' then '인센티브120%'
else '인센티브105%'
end
from Team t
▼ COALESCE
COALESCE (<스칼라식> {, <스칼라식>}+)
스칼라식을 차례대로 조회해서 null이 아니면 반환한다.
예) m.username이 null이면 '이름 없는 회원'을 반환하라.
select coalesce(m.username, '이름 없는 회원') from Member m
▼ NULLIF
NULLIF(<스칼라식>, <스칼라식>)
두 값이 같으면 null을 반환하고 다르면 첫 번쨰 값을 반환한다.
예) 사용자 이름이 '관리자'면 null을 반환하고 나머지는 본인의 이름을 반환하라.
select NULLIF(m.username, '관리자') from Member m
반응형
'JPA' 카테고리의 다른 글
JPQL - Criteria 기초 (조회, 집합, 정렬) (0) | 2024.05.28 |
---|---|
JPQL - Named 쿼리 - 정적 쿼리 (0) | 2024.05.14 |
JPQL - 서브 쿼리 (2) | 2023.10.23 |
JPQL - 경로 표현식 (4) | 2023.10.23 |
JPQL - 페치 조인(Fetch Join) (0) | 2023.10.12 |