Posts [자바 ORM 표준 JPA 프로그래밍-기본편] 조건식 (CASE 등등)
Post
Cancel

[자바 ORM 표준 JPA 프로그래밍-기본편] 조건식 (CASE 등등)

본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다.


조건식 - CASE 식

image

1
2
3
4
5
6
7
8
String query = "select " +
                    "case when m.age <= 10 then '학생요금' " +
                    "     when m.age >= 60 then '경로요금' " +
                    "     else '일반요금' " +
                    "end " + 
                    "from Member m";
List<String> resultList = em.createQuery(query, String.class)
        .getResultList();
  • COALESCE: 하나씩 조회해서 null이 아니면 반환
  • NULLIF: 두 값이 같으면 null 반환, 다르면 첫번째 값 반환

예시

1)사용자 이름이 없으면 이름 없는 회원을 반환

1
2
3
String query = "select coalesce(m.username, '이름 없는 회원') from Member m";
List<String> resultList = em.createQuery(query, String.class)
        .getResultList();

2)사용자 이름이 ‘관리자’면 null을 반환하고 나머지는 본인의 이름을 반환

1
2
3
String query = "select nullif(m.username, '관리자') from Member m";
List<String> resultList = em.createQuery(query, String.class)
        .getResultList();

Note: 참고로 COALESCE, NullIF는 JPA에서 제공하는 표준함수이기에 어떤 DB든 다 사용가능하다.

This post is licensed under CC BY 4.0 by the author.

[자바 ORM 표준 JPA 프로그래밍-기본편] JPQL 타입 표현과 기타식

[자바 ORM 표준 JPA 프로그래밍-기본편] JPQL 함수