ORACLE 分页和行限制

行限制:示例 (此语法从12C版本开始支持)

以下语句返回具有最低employee_id的 5 名员工

SELECT employee_id, last_name 
  FROM Employees 
  ORDER BY employee_id 
  FETCH FIRST 5 ROWS ONLY; 

EMPLOYEE_ID LAST_NAME 
----------- ------------------------- 
        100 King 
        101 Kochhar 
        102 De Haan 
        103 Hunold 
        104 Ernst

以下语句返回具有最低employee_id的接下来 5 名员工

SELECT employee_id, last_name 
  FROM Employees 
  ORDER BY employee_id 
  OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY; 

EMPLOYEE_ID LAST_NAME 
----------- ------------------------- 
        105 Austin 
        106 Pataballa 
        107 Lorentz 
        108 Greenberg 
        109 Faviet

以下语句返回工资最低的 5% 的员工:

SELECT employee_id,last_name,salary 
  FROM 雇员
  ORDER BY 薪水
  FETCH FIRST 5 PERCENT ROWS ONLY;
EMPLOYEE_ID LAST_NAME SALARY 
----------- ------------------------- ---------- 
        132奥尔森 2100 
        128 马克尔 2200 
        136 Philtanker 2200 
        127 兰德里 2400 
        135 Gee 2400 
        119 Colmenares 2500

 由于WITH TIES已指定,以下语句返回薪水最低的员工的 5%,以及与上例中提取的最后一行薪水相同的所有其他员工:

SELECT employee_id、last_name、salary 
  FROM 雇员
  ORDER BY 薪水
  FETCH FIRST 5 PERCENT ROWS WITH TIES; 

EMPLOYEE_ID LAST_NAME SALARY 
----------- ------------------------- ---------- 
        132 Olson 2100 
        128 Markle 2200 
        136 Philtanker 2200 
        127 Landry 2400 
        135 Gee 2400 
        119 Colmenares 2500 
        131 Marlow 2500 
        140 Patel 2500 
        144 Vargas 250
        182 沙利文 2500 
        191 帕金斯 2500

 

posted @ 2021-10-09 14:25  lybingyu  阅读(120)  评论(0编辑  收藏  举报