1. CASE

String jpql =
        "select " +
                "case when m.age <= 10 then '학생요금' " +
                    "when m.age >= 60 then '학생요금' " +
                    "else '일반요금' " +
                "end " +
        "from Member m ";

List<String> result = em.createQuery(jpql, String.class).getResultList();

SQL의 CASE처럼 똑같이 사용가능 위는 기본 케이스 식이고 SIMAPLE CASE 식도 가능하다.

2. COALESCE, NULLIF

String jpql = "select colesce(m.username, '이름 없는 회원') from Member m ";
String jpql2 = "select nullif(m.username, '관리자') from Member m ";

COALESCE는 첫번째 파라미터가 null이면 두번째파라미터, 다음 파라미터를 확인해서 null이 아닌게 나올때까지 찾고 null이 아닌 값이 나오면 그 값을 가져온다.

nullif는 첫번째 파라미터와 두번째 파라미터의 값이 같으면 null을 반환한다.