강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

민준님의 프로필 이미지
민준

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

회원 목록 조회

질문드립니다

해결된 질문

작성

·

231

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
별 거 아니긴 하지만..
 
만약 회원 목록쪽에서 이름 순서를 가나다순으로 나열하고 싶다면 어느 방법이 가장 효율적으로 나열이 될까요?

답변 1

1

안녕하세요. 민준님, 공식 서포터즈 OMG입니다.

JPQL 작성 할 때 select 쿼리에서 order by 조건을 이름 기준으로 오름차순해서 가져오는 방법이 효율적이라고 생각합니다.


감사합니다.

민준님의 프로필 이미지
민준
질문자

질문할 때는 까먹고있어 추가로 질문 하나만 더 드리자면 오름차순을 하더라도 랭킹의 순위처럼 고정된 문자로 위치가 변하지 않도록 할 방법이 있을까요

 고정된 문자로 위치가 변하지 않도록

=> 이 내용이 정렬 우선순위를 랭킹으로 먼저 두고, 이름 순으로 정렬을 해야한다고 이해하였는데

order by를 랭킹순으로 먼저하고 나서 이름 순으로 하면 될 거같아요

민준님의 프로필 이미지
민준
질문자

순위처럼

1 c

2 b

3 a

가 있으면 이름 오름차순을 해도 a b c 순서로만 변하고 1 2 3은 그대로 고정된다는 뜻이었는데 order by를 두 번하면 이렇게 될까요

랭킹(1,2,3 ..)의 위치는 고정으로 있고, 가나다 순으로 정렬 하고 싶으시다면

SQL의 ROW_NUMBER()를 쓰면 될 것 같네요.

하지만 JPQL에서 지원하지 않고 사용자 정의 함수를 사용하여 ROW_NUMBER()를 사용할 수 는 있으나 일부 DB방언에서 row_number()를 지원하지 않을 수 있습니다.

https://www.inflearn.com/questions/369430

 

다른 방법을 알고 계신분은 댓글 남겨주시면 감사하겠습니다 :)

 

민준님의 프로필 이미지
민준

작성한 질문수

질문하기