반응형
SQL ROWNUM 특정 범위 사이의 행을 반환하는 방법
특정 범위를 반환하려면 어떻게 해야 합니까?ROWNUM가치관?
다음을 시도하고 있습니다.
select * from maps006 where rownum >49 and rownum <101
그러면 일치하는 행만 반환됩니다.<교환입니다.
SELECT * from
(
select m.*, rownum r
from maps006 m
)
where r > 49 and r < 101
SELECT *
FROM (
SELECT q.*, rownum rn
FROM (
SELECT *
FROM maps006
ORDER BY
id
) q
)
WHERE rn BETWEEN 50 AND 100
이중 중첩 뷰에 주목하십시오. ROWNUM이전에 평가됩니다.ORDER BY올바른 번호부여에 필요합니다.
생략하면ORDER BY조항, 일관된 질서를 얻을 수 없습니다.
오래된 질문인 것은 알지만, 최신 버전의 신기능을 언급하는 것이 도움이 됩니다.
Oracle 12c 이후로는 새로운 Top-n 행 제한 기능을 사용할 수 있습니다.서브쿼리를 쓸 필요도 없고 ROWNUM에 의존할 필요도 없습니다.
예를 들어, 다음 쿼리는 직원 급여가 4위부터 7위까지 오름차순으로 반환됩니다.
SQL> SELECT empno, sal
2 FROM emp
3 ORDER BY sal
4 OFFSET 4 ROWS FETCH NEXT 4 ROWS ONLY;
EMPNO SAL
---------- ----------
7654 1250
7934 1300
7844 1500
7499 1600
SQL>
이에 대한 해결책을 찾던 중 해결책을 설명하는 이 훌륭한 기사를 발견했습니다. 관련 발췌
내가 가장 좋아하는 ROWNUM 사용법은 페이지 번호부여이다.이 경우 ROWNUM을 사용하여 결과 세트의 N ~ M 행을 가져옵니다.일반적인 형식은 다음과 같습니다.
select * enter code here
from ( select /*+ FIRST_ROWS(n) */
a.*, ROWNUM rnum
from ( your_query_goes_here,
with order by ) a
where ROWNUM <=
:MAX_ROW_TO_FETCH )
where rnum >= :MIN_ROW_TO_FETCH;
다음으로 실제 예를 제시하겠습니다(행 148, 149 및 150을 취득합니다).
select *
from
(select a.*, rownum rnum
from
(select id, data
from t
order by id, rowid) a
where rownum <= 150
)
where rnum >= 148;
SELECT * FROM
(SELECT ROW_NUMBER() OVER(ORDER BY Id) AS RowNum, * FROM maps006) AS DerivedTable
WHERE RowNum BETWEEN 49 AND 101
절과 함께 CTE를 사용할 수도 있습니다.
WITH maps AS (Select ROW_NUMBER() OVER (ORDER BY Id) AS rownum,*
from maps006 )
SELECT rownum, * FROM maps WHERE rownum >49 and rownum <101
select *
from emp
where rownum <= &upperlimit
minus
select *
from emp
where rownum <= &lower limit ;
언급URL : https://stackoverflow.com/questions/4552769/sql-rownum-how-to-return-rows-between-a-specific-range
반응형
'programing' 카테고리의 다른 글
| 워드프레스에서 mysql 쿼리를 실행하려면 어떻게 해야 하나요? (0) | 2023.03.18 |
|---|---|
| 샘플 스프링 부트애플리케이션의 필드에 로거를 주입하려면 어떻게 해야 합니까? (0) | 2023.03.18 |
| reactjs - 배경색 인라인 스타일 설정 방법 (0) | 2023.03.18 |
| jQuery.ajax 성공 콜백 함수가 실행되지 않았습니다. (0) | 2023.03.18 |
| 자격 정보가 있는 AngularJS (0) | 2023.03.18 |