Case 문
select, where, order by에서 사용 가능하다.
단순한 조건
@SpringBootTest
@Transactional
public class QuerydslBasicTest {
@Test
void caseStatement() {
List<String> result = queryFactory
.select(member.age
.when(10).then("열살")
.when(20).then("스무살")
.otherwise("기타"))
.from(member)
.fetch();
}
}select case
when member0_.age = ? then ?
when member0_.age = ? then ?
else '기타'
end as col_0_0_
from member member0_복잡한 조건
복잡한 조건에는 CaseBuilder를 사용한다.
orderBy + case
복잡한 조건은 변수로 선언해 select, orderBy에서 활용한다.
웬만하면 DB에서는 최소한의 조건만 걸고 case로 들어갈 수 있는 조건들은 애플리케이션에서 하자.
Last updated
Was this helpful?