[JPA 기본 - JPQL] 타입 표현, 조건식, 함수

강신현·2022년 7월 27일
0

✅ case식 ✅ COALESCE ✅ NULLIF


타입 표현

1. 문자

‘HELLO’, ‘She’’s’

2. Boolean

TRUE, FALSE

3. 숫자

10L(Long), 10D(Double), 10F(Float)

4. ENUM

🔥 패키지명을 포함해야 함
jpabook.MemberType.Admin

5. 엔티티 타입

TYPE(m) = Member (상속 관계에서 사용)

6. SQL과 문법이 같은 식

  • EXISTS, IN
  • AND, OR, NOT
  • =, >, >=, <, <=, <>
  • BETWEEN, LIKE, IS NULL

조건식

1. 기본 CASE 식

select
  case when m.age <= 10 then '학생요금'
  		when m.age >= 60 then '경로요금'
        else '일반요금'
  end
from Member m

2. 단순 CASE 식

select
  case t.name
    when '팀A' then '인센티브110%'
    when '팀B' then '인센티브120%'
    else '인센티브105%'
  end
from Team t

3. COALESCE

하나씩 조회해서 null이 아니면 반환

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

select coalesce(m.username,'이름 없는 회원') from Member m

4. NULLIF

두 값이 같으면 null 반환, 다르면 첫번째 값 반환

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

select NULLIF(m.username, '관리자') from Member m

함수

1. 기본함수

  • CONCAT
  • SUBSTRING
  • TRIM
  • LOWER, UPPER
  • LENGTH
  • LOCATE
  • ABS, SQRT, MOD
  • SIZE, INDEX(JPA 용도)

db 종속적인 함수들 또한 제공됨 (db가 바뀌면 파라미터 등이 달라 사용 불가능한 경우 주의)

2. 사용자 정의 함수 호출

사용하는 DB 방언을 상속받고, 사용자 정의 함수를 등록하여 사용할 수 있는데 필요할 때 다시 알아보자

select function('사용자 정의 함수', i.name) from Item i
profile
땅콩의 모험 (server)

0개의 댓글