Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- QueryDSL
- pointcut
- 그리디
- db
- JPQL
- 알고리즘
- Android
- Greedy
- 백준
- 스프링 핵심 기능
- Servlet
- 인프런
- spring
- Spring Boot
- 스프링
- JDBC
- java
- jpa
- springdatajpa
- Exception
- Thymeleaf
- SpringBoot
- 김영한
- Proxy
- http
- 자바
- 스프링 핵심 원리
- kotlin
- AOP
- transaction
Archives
- Today
- Total
개발자되기 프로젝트
JPQL 조건식 - CASE 본문
1. 기본 CASE 식
- if와 유사, 해당 조건이 만족하면 then 하위 내용 으로 결과.
Select
case when m.age <= 10 then '학생요금'
when m.age >= 60 then '경로요금'
else '일반요금'
end
from Member m
- 예제
String query = "select " + "case when m.age <= 10 then '학생요금'" + " when m.age >=60 then '경로요금'" + " else '일반요금' end " + "from Member m";
2. 단순 CASE 식
- switch와 유사, 정확하게 내용이 매치되면 결과
select
case t.name
when '팀A' then '인센티브 110%'
when '팀B' then '인센티브 120%'
else '인센티브 105%'
end
from Team t
3. COALESCE
- 하나씩 조회해서 null이 아니면 반환
- null이면 입력한 값 반환.
- 사용자 이름이 없으면 이름 없는 회원을 반환
-
select coalsce(m.username, '이름없는 회원') from Member m
- 예제
-
member.setAge(10); String query = "select coalesce(m.username, '이름없는 회원') from Member m "; List<String> resultList = em.createQuery(query, String.class).getResultList();
-
s = 이름없는 회원
4. NULLIF
- 두 값이 같으면 null 반환, 다르면 첫번째 값 반환
- 사용자 이름이 '관리자'면 null 반환 나머지는 본인 이름 반환.
-
select NULLIF(m.username, '관리자') from Member m
-
member.setUsername("관리자"); String query = "select nullif(m.username, '관리자') from Member m ";
-
s = null
5. GitHub : 210816 조건식-CASE
'인프런 > [인프런] 자바ORM 표준 JPA 프로그래밍' 카테고리의 다른 글
경로 표현식 (0) | 2021.08.16 |
---|---|
JPQL 기본 함수 (0) | 2021.08.16 |
JPQL 타입 표현 (0) | 2021.08.16 |
서브쿼리 (0) | 2021.08.16 |
JPQL JOIN (0) | 2021.08.16 |
Comments