oracle의 간격 쿼리 문: 1. 테이블에 지정된 처음 몇 개의 데이터를 쿼리하는 "rownum
이 튜토리얼의 운영 환경: Windows 10 시스템, Oracle 버전 12c, Dell G3 컴퓨터.
오라클은 rownum 키워드를 사용하여 이런 쿼리를 구현합니다.
⾸ 먼저 지리 정보 테이블 영역이 있고 해당 테이블 구조는 다음과 같습니다. 아래 그림:
테이블의 데이터는 아래와 같습니다(select * from Area 문의 결과).
1) 테이블의 처음 8개 레코드를 쿼리합니다.
select * from area where rownum <= 8
쿼리 결과
2) 2~8번째 레코드를 쿼리합니다
이러한 쿼리 형식은 Oracle이 MySQL만큼 편리하지 않습니다. 하위 쿼리나 집합 연산을 사용하여 구현해야 합니다. 이를 달성하기 위해 다음 세 가지 방법을 사용할 수 있습니다.
A: select id,province,city,district from (select id,province,city,district,rownum as num from area) where num between 2 and 8;
※ 먼저, 선택 ID, 지방, 도시, 구역, rownum을 지역의 num으로 기반으로 임시 테이블을 가져옵니다. 이 임시 테이블에는 rownum 열이 있습니다(Pseudo).
rowid와 비슷하지만 rowid와는 다릅니다. rowid는 물리적으로 존재하는 열입니다. 즉, Oracle의 모든 테이블에는 rowid 열이 있고 rownum은 물리적으로 존재하지 않습니다.),
그런 다음 임시에서 쿼리합니다. 테이블.
B: select * from area where rownum <= 8 minus select * from area where rownum < 2;
첫 번째 선택에는 나타나지만 두 번째 선택에는 나타나지 않는 레코드를 반환하는 집합 빼기 연산자 마이너스를 사용하세요.
C: select id,province,city,district from (select id,province,city,district,rownum as num from area) where num >=2 intersect
select * rownum
우회를 수행하는 집합 교차 연산자 intersect를 사용합니다(그러나 이 우회는 rownum이 특정 숫자보다 큰 쿼리를 구현합니다). 먼저 A의 방법을 사용합니다.
rownum이 2보다 큰 모든 레코드를 가져오는 쿼리를 수행한 다음 rownum이 8보다 작거나 같은 레코드 집합과 교차 연산을 수행합니다. 아래 그림과 같이 세 가지 작업으로 얻은 결과는 동일합니다.
추천 튜토리얼: "Oracle Video Tutorial"
위 내용은 Oracle의 간격 쿼리 문은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!