오라클 11g에서 "선택" 쿼리에서 오프셋을 추가하는 방법은 무엇입니까?
Oracle 11g에서 "선택" 쿼리에서 오프셋을 추가하는 방법나는 예를 들어 한도를 추가하는 방법만 알고 있습니다.rownum <= 5
이 질문은 중복이 아닙니다. 저는 이미 다른 질문들을 확인했고 제 질문과 관련이 없습니다.
그렇다면 Oracle 11g에서 오프셋을 추가하는 방법은 무엇입니까?
위에서 쉽게 할 수 있습니다.12c
지정하여OFFSET
.
인12c
,
SELECT val
FROM table
ORDER BY val
OFFSET 4 ROWS FETCH NEXT 4 ROWS ONLY;
동일한 작업을 수행하는 방법11g
그리고 그 전에, 당신은 사용할 필요가 있습니다.ROWNUM
두번이라.inner query
그리고.outer query
각각 다음과 같다.
의 동일한 쿼리11g
,
SELECT val
FROM (SELECT val, rownum AS rnum
FROM (SELECT val
FROM table
ORDER BY val)
WHERE rownum <= 8)
WHERE rnum > 4;
여기서OFFSET
4입니다.
ROW_NUMBER 함수를 사용할 수 있습니다.
이것이 도움이 될 수도 있습니다.
SELECT *
FROM(SELECT t.*,
ROW_NUMBER() OVER (ORDER BY ...) rn -- whatever ordering you want
FROM your_table t
)
WHERE rn >= ... -- your offset
도움이 되길 바랍니다.
오라클 11g의 경우 테이블 사용자가 있다고 가정하고, 제한 및 오프셋에 대해 다음을 수행할 수 있습니다.
SELECT * FROM (
SELECT USER.*,
row_number() over (partition by 1 order by 1) as rnum
from USER
)
where rnum <= 100 --limit
and rnum > 0 --offset
그게 당신에게 효과가 있는지 알려주세요.
Oracle에서 LAG 또는 LED 기능 사용
The LAG function is used to access data from a previous row
The LEAD function is used to return data from the next row
용도:-
LAG (value_expression [,offset] [,default]) OVER ([query_partition_clause] order_by_clause)
LEAD (value_expression [,offset] [,default]) OVER ([query_partition_clause] order_by_clause)
예를 들어 이 링크를 찾으십시오.
오라클 11g의 페이지화를 위해, 우리는 사용할 수 있습니다.ROWNUM
.
이것이 그 예입니다.
WITH STUDENT_PAGINATION AS (
SELECT
STUDENT.*,
ROWNUM AS RN
FROM
STUDENT
ORDER BY
ID
)
SELECT
*
FROM
STUDENT_PAGINATION
WHERE
RN >=5
AND RN <=10;
언급URL : https://stackoverflow.com/questions/27099414/how-to-add-offset-in-a-select-query-in-oracle-11g
'programing' 카테고리의 다른 글
Java-config 클래스를 XML-config로 가져와서 두 컨텍스트에 빈이 있도록 하는 방법은 무엇입니까? (0) | 2023.08.15 |
---|---|
MySQL GROUP_CONCAT 출력을 여러 행으로 분할하는 더 좋은 방법이 있습니까?예를 들어 매 6개의 레코드 뒤에 말합니다. (0) | 2023.08.15 |
Android에서 진행률 표시줄을 사용자 지정하는 방법 (0) | 2023.08.15 |
json에 일반적인 방법으로 존재하는 배열 요소에서 열 형성 (0) | 2023.08.15 |
C에서 C++의 신규/삭제와 동등한 것은 무엇입니까? (0) | 2023.08.15 |