기본 CASE 식
case로 열고, end로 닫음
Select
case
when m.age <= 10 then "학생요금"
when m.age >= 60 then "경로요금"
else "일반요금"
end
from Member m
단순 CASE 식
case 앞에 변수 명시 가능
select
case t.name
when '팀a' then '인센티브추가'
when '팀b' then '인센티브감소'
else '인센유지'
end
from Team t
COALESCE
하나씩 조회 후, NULL이 아니면 반환
//m.username이 null ➡️ "이름 없는 회원"이 반환
//m.username이 not null ➡️ m.username 값 반환
SELECT
COALESCE(m.username, '이름 없는 회원')
FROM
Member m
------REUSLT------
(DB에 member1.username = "mem A",
member2.username = null 로 저장된 상태)
mem A
이름 없는 회원
NULLIF
두 값이 같으면 NULL 반환, 다르면 첫 값을 반환
// m.username != "관리자" ➡️ m.username 값 반환
// m.username == "관리자" ➡️ null 반환
SELECT
NULLIF(m.username, '관리자')
FROM
Member m
-------현재 DB-------
mem1.username = Mem A
mem2.username = '관리자'
-------RESULT-------
Mem A
null
강의 출처
김영한님의 JPA강의
https://www.inflearn.com/course/lecture?courseSlug=ORM-JPA-Basic
'JPA' 카테고리의 다른 글
[JPA] Named Query - 쿼리를 함수처럼 만들어보자 (0) | 2023.06.01 |
---|---|
[JPA] 경로 표현 (0) | 2023.05.29 |
즉시로딩(EAGER Loading)과 지연로딩(LAZY LOADING) (0) | 2023.05.23 |
프록시 (0) | 2023.05.23 |
JPA - 연관관계 주인(feat. mappedBy) (0) | 2023.05.19 |