백엔드 개발자 - 젤리곰 2024. 7. 17. 22:10
728x90

1. CASE WHEN

SQL 문법과 동일하다.

 

✅예시

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

CASE WHEN 문법이 SQL과 동일해서 예시만 쓰고 넘어간다..

(*JPQL은 문자열로 쿼리를 작성해서 문자열을 합치기 때문에 공백을 신경써줘야된다.)

 

2. COALESCE

하나씩 조회해서 NULL이 아니면 반환하고 NULL이면 다음 인수를 반환한다.

이 함수는 표준 SQL 함수다.

코우얼레스,,,빨리 발음하면 '코올레스'로 읽으면 된다.

 

✅예시(1)

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

이름이 null값인 회원은 '이름 없는 회원'으로 반환되고, 이름이 있으면 이름 그대로 반환된다.

 

✅예시(2)

SELECT COALESCE(m.nickname, m.username, m.email) FROM Member m

m.nickname이 NULL이면 m.username을 반환

m.username이 NULL이면 m.email을 반환

모두 NULL이면 NULL을 반환한다.

 

3. NULLIF

첫번째 인수가 두번째 인수와 같으면 null을 반환하고 아니면 첫번째 인수를 반환한다.

 

✅예시

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

m.username이 '관리자'면 null을 반환하고 관리자가 아니면 m.username을 반환한다.

728x90