row_number() over 질문입니다 0 3 461

by 킹오 [Oracle 기초] [2020.04.29 10:19:08]


qqqq.PNG (12,740Bytes)

오라클 예제 테이블로 연습중에 궁금한게 있어서 올립니다.

사진첨부한 걸 보면

FROM 안에 SELECT를 다시 해 EMP 테이블을 다시 조회하고, empno 기준으로

역순정렬을 하고 있습니다.

 

그런데 그 위 select문에서 rnum을 조회하지 않으면 의미가 없는거죠?

아직 row_number() over이 헷갈리네요 ㅠㅠ

사실 그냥 밑의 서브쿼리 뺴버리고

select * from EMP order by empno desc;

이 코드랑 다른게 뭔가요..?

 

by 마농 [2020.04.29 12:10:13]

Select 절에는 rnum 이 없지만. Where 절에서 사용이 되므로 의미가 있습니다.


by 킹오 [2020.04.29 13:58:20]

감사합니다. 그럼 저 밑의 where절에서 rnum을 빼면 의미가 없는 것이 되는거죠? 

다시 회사 소스를 보니 rnum을 많이 사용하던데 페이징에 주로 쓰이는 것 같네요 정확히는 모르겠지만..


by 마농 [2020.04.29 14:05:14]

최종 결과에서 사용되지 않는 항목이 중간 결과에 들어 있다면?
불필요한 항목일 가능성이 있습니다.
예시 쿼리라면? 불필요하다고 볼 수 있지만.
다른 쿼리라면? 쿼리의 내용을 분석해 봐야지만 필요여부를 판단할 수 있습니다.
순번의 경우 페이징을 위한 도구로 쓰이기도 하지만
그냥 순번 자체가 필요해서 사용하는 경우도 있을 수 있습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입