[SQL] ">"로 ROWNUM 함수의 사용 오라클 로그인 [중복]
SQL">"로 ROWNUM 함수의 사용 오라클 로그인 [중복]
나는 "(ROWNUM> 3)"ROWNUM 함수 i_e에 의해 3보다 큰 행 수를 선택합니다 예를 들어이 25 행은 내가 ROWNUM 함수에 의해 마지막 22 개 행을 검색하십시오. 하지만 난을 쓸 때
select * from test_table where rownum>3;
그것은 어떤 행을 검색합니다. 하나의 도움이 내게는이 문제를 해결하기 위해 수 있습니다. 사전에 감사합니다
해결법
-
==============================
1.RDBMS에는 첫 번째 또는 마지막 행이 없습니다. 당신이 "RAWS"실제로 설정 (설정)를 호출 무엇, 그들은 주문 여부를 할 수 있습니다. ROWNUM은 당신이 ROWNUM 호출하기 전에 쿼리를 수행해야합니다 세트 데이터 (행)의 당신의 세트를 주문, 계산 된 후에 만 의미가 있습니다, 그냥 결과 세트를 열거 함수, 당신은 DB를 알려야합니다 순서에 대한 어떤 수단 특히 select 문이다.
RDBMS에는 첫 번째 또는 마지막 행이 없습니다. 당신이 "RAWS"실제로 설정 (설정)를 호출 무엇, 그들은 주문 여부를 할 수 있습니다. ROWNUM은 당신이 ROWNUM 호출하기 전에 쿼리를 수행해야합니다 세트 데이터 (행)의 당신의 세트를 주문, 계산 된 후에 만 의미가 있습니다, 그냥 결과 세트를 열거 함수, 당신은 DB를 알려야합니다 순서에 대한 어떤 수단 특히 select 문이다.
-
==============================
2.첫 번째 행 1의 ROWNUM을 가정하고 절은 ROWNUM> 3 당신의 WHERE 다음이 1> 3 줄이고 있기 때문에 행이 삭제되어 있기 때문에 작동하지 않습니다. 후속 행이 다음 1의 ROWNUM에 대해 테스트됩니다 테스트를 다시 실패하고 폐기, (이전 행은 행 번호를 필요로하지 않습니다 이제 더 이상 출력하고 있기 때문에). 반복, 광고 nauseum 모든 행은 WHERE 절 필터를 실패하고 삭제됩니다.
첫 번째 행 1의 ROWNUM을 가정하고 절은 ROWNUM> 3 당신의 WHERE 다음이 1> 3 줄이고 있기 때문에 행이 삭제되어 있기 때문에 작동하지 않습니다. 후속 행이 다음 1의 ROWNUM에 대해 테스트됩니다 테스트를 다시 실패하고 폐기, (이전 행은 행 번호를 필요로하지 않습니다 이제 더 이상 출력하고 있기 때문에). 반복, 광고 nauseum 모든 행은 WHERE 절 필터를 실패하고 삭제됩니다.
그런 다음 행에게 ROWNUM을 할당하면이 작업을 수행해야 할 경우 하위 쿼리입니다 :
SELECT * -- Finally, in the outer query, filter on the assigned ROWNUM FROM ( SELECT t.*, -- First, in the inner sub-query, apply a ROWNUM ROWNUM AS rn FROM test_table t ) WHERE rn > 3;
또는,이 번호 전에 결과를 정렬하려면 :
SELECT * -- Finally, in the outer query, filter on the assigned ROWNUM FROM ( SELECT t.*, -- Second, in the next level sub-query, apply a ROWNUM ROWNUM AS rn FROM ( SELECT * -- First, in the inner-most sub-query, apply an order FROM test_table ORDER BY some_column ) t ) WHERE rn > 3;
-
==============================
3.
select * from (select rownum as rn, t.* from test_table t) where rn > 3
더 많은 샘플이 문서를 참조하십시오 최고-N과 페이지 네이션 쿼리에서 톰 카이트에
from https://stackoverflow.com/questions/43339561/using-of-rownum-function-with-sign-in-oracle by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] Laravel 웅변 테이블에 가입하고 관련 계산하기 (0) | 2020.07.19 |
---|---|
[SQL] "피벗"테이블 오라클은 - 어떻게 컬럼에 행 항목을 변경하려면 (0) | 2020.07.19 |
[SQL] 왼쪽은 쿼리 첫 번째 테이블의 모든 행을 반환하지 JOIN (0) | 2020.07.19 |
[SQL] 오라클 10g SQL 피벗 (0) | 2020.07.19 |
[SQL] 임의의 문자열 고유의 데이터베이스 테이블 (0) | 2020.07.19 |