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을 반환한다.