[SQL] 어떻게 오라클 11g에서 "선택"쿼리에서 오프셋 추가하려면?
SQL어떻게 오라클 11g에서 "선택"쿼리에서 오프셋 추가하려면?
오라클 11g에서 "선택"쿼리에서 오프셋을 추가하는 방법. 나는 단지 예 : ROWNUM <= 5에 의해 제한을 추가하는 방법을 알고 이 질문은 이미 다른 질문을 확인하고 광산 관련이없는, 중복되지 않습니다.
그럼, 어떻게 오라클 11g에서 오프셋 추가?
해결법
-
==============================
1.당신은 OFFSET 지정하여 12C에 쉽게 할 수 있습니다.
당신은 OFFSET 지정하여 12C에 쉽게 할 수 있습니다.
12C에서,
SELECT val FROM table ORDER BY val OFFSET 4 ROWS FETCH NEXT 4 ROWS ONLY;
11g 이전에 동일한 작업을 수행하려면, 두 번 사용 ROWNUM 각각 내부 쿼리와 외부 쿼리가 필요합니다.
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입니다.
-
==============================
2.당신은 그것을 위해 ROW_NUMBER 기능을 사용할 수 있습니다.
당신은 그것을 위해 ROW_NUMBER 기능을 사용할 수 있습니다.
어쩌면이 도움이 :
SELECT * FROM(SELECT t.*, ROW_NUMBER() OVER (ORDER BY ...) rn -- whatever ordering you want FROM your_table t ) WHERE rn >= ... -- your offset
희망이 도움이
-
==============================
3.오라클의 함수 LAG 또는 LEAD를 사용하여
오라클의 함수 LAG 또는 LEAD를 사용하여
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)
예는이 링크를 찾아주세요
from https://stackoverflow.com/questions/27099414/how-to-add-offset-in-a-select-query-in-oracle-11g by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL은 - 중복 결과를 제거 (0) | 2020.07.08 |
---|---|
[SQL] 업데이트하고 한 쿼리에서 선택 (0) | 2020.07.08 |
[SQL] 관련된 사람없이 모든 레코드 찾기 (0) | 2020.07.07 |
[SQL] LINQ에 SQL 순위 () 변환, 또는 대체 (0) | 2020.07.07 |
[SQL] 사용 *에 베스트 MySQL의 필드를 많이 호출 할 때? [복제] (0) | 2020.07.07 |