Use rownum to limit the subquery : ROWNUM « Select Query « Oracle PL / SQL






Use rownum to limit the subquery

   

SQL>
SQL> create table emp(
  2           emp_no                 integer         primary key,
  3           lastname               varchar2(20)    not null,
  4           firstname              varchar2(15)    not null,
  5           midinit                varchar2(1),
  6           street                 varchar2(30),
  7           city                   varchar2(20),
  8           state                  varchar2(2),
  9           zip                    varchar2(5),
 10           shortZipCode                   varchar2(4),
 11           area_code              varchar2(3),
 12           phone                  varchar2(8),
 13           salary                 number(5,2),
 14           birthdate              date,
 15           startDate              date,
 16           title                  varchar2(20),
 17           dept_no                integer         ,
 18           mgr                    integer,
 19           region                 number,
 20           division               number,
 21           total_sales            number
 22  );

Table created.

SQL> -- emp Table Inserts:
SQL> insert into emp(emp_no, lastname, firstname, midinit, street, city, state, zip,shortZipCode, area_code, phone, birthdate, title)values
  2                      (1,'Z','Joy','R','1 Ave','New York','NY','12122','2333','212','200-1111','12-nov-1976','President');

1 row created.

SQL> insert into emp(emp_no, lastname, firstname, midinit, street, city, state, zip,shortZipCode, area_code, phone, salary, birthdate, startDate,title, dept_no, mgr, region, division, total_sales)valu
es
  2                      (2,'X','Lucy','J','1 Street','New York','NY','43552','6633','212','234-4444',7.75,'21-mar-1976','1-feb-1994','Sales Manager',2,1,100,10,40000);

1 row created.

SQL> insert into emp(emp_no, lastname, firstname, midinit, street, city, state, zip,shortZipCode, area_code, phone, salary, birthdate, startDate,title, dept_no, mgr, region, division, total_sales)valu
es
  2                      (3,'Y','Jordan','E','1 Drive','New York','NY','76822','8763','212','222-2222',7.75,'14-feb-1963','15-mar-1995','Sales Clerk',2,2,100,10,10000);

1 row created.

SQL>
SQL> select lastname, firstname, salary
  2    from (SELECT lastname, firstname, salary FROM emp ORDER BY salary DESC)
  3   where rownum <= 3 ;

LASTNAME             FIRSTNAME           SALARY
-------------------- --------------- ----------
Z                    Joy
X                    Lucy                  7.75
Y                    Jordan                7.75

SQL>
SQL> drop table emp;

Table dropped.

   
    
    
  








Related examples in the same category

1.Use rownum in select clause
2.Use rownum in update set statement
3.Use rownum in where clause to control the row count
4.Use rownum column with order by
5.Use rownum in where clause to limit the row count
6.Limit the query to display only the top 3 highest paid employees.
7.Use rownum = 1 and select into
8.Retrieving the Top Five Students with ROWNUM
9.Getting the Five Most Expensive Products