오라클 - Top 쿼리 : 상위 몇개의 데이터만 출력을 원하는 경우
번호에 역순으로 출력하되 상위(Top) 3개 출력하는 구문…
SQL Server 의 경우)
* Oracle의 경우는 다음과 같이 수행한다.
샘플 테이블 생성
전체 데이터를 번호를 기준으로 내림차순 정렬
눈에 보이지 않게 내부적으로 저장되는 고유 번호값 : rownum
Memos 테이블과 동일한 뷰 생성
뷰의 RowNum을 출력
특정 테이블의 상위 N개를 출력 : 뷰와 RowNum을 활용
뷰를 인라인으로 포함 : 순서에 의해서 재정렬후에 호출해주는 개념...
번호에 역순으로 출력하되 상위(Top) 3개 출력하는 구문…
SQL Server 의 경우)
Select Top 3 * From Memos Order By Num Desc
* Oracle의 경우는 다음과 같이 수행한다.
샘플 테이블 생성
SQL> create table Memos
2 (
3 Num Number(2) Primary Key,
4 Name VarChar2(25) Not Null
5 );
2 (
3 Num Number(2) Primary Key,
4 Name VarChar2(25) Not Null
5 );
전체 데이터를 번호를 기준으로 내림차순 정렬
SQL> Select * from Memos Order By Num Desc;
눈에 보이지 않게 내부적으로 저장되는 고유 번호값 : rownum
SQL> Select rownum, Num, Name From Memos;
* rownum : 오라클 내부적으로 생성되는 데이터 Memos 테이블과 동일한 뷰 생성
SQL> Create Or Replace View vw_Memos
2 As
3 Select Num, Name From Memos Order By Num Desc; * 정렬하고 싶은 값을 정의 한다.
2 As
3 Select Num, Name From Memos Order By Num Desc; * 정렬하고 싶은 값을 정의 한다.
뷰의 RowNum을 출력
SQL> Select RowNum, Num, Name From vw_Memos;
특정 테이블의 상위 N개를 출력 : 뷰와 RowNum을 활용
SQL> Select * From vw_Memos Where RowNum <= 3;
뷰를 인라인으로 포함 : 순서에 의해서 재정렬후에 호출해주는 개념...
SQL> Select RowNum, Num, Name From
2 (
3 Select Num, Name From Memos Order By Num Desc
4 )
5 Where RowNum <= 3;
2 (
3 Select Num, Name From Memos Order By Num Desc
4 )
5 Where RowNum <= 3;