语法
SELECT …
FROM …
[ WHERE … ]
[ ORDER BY … ]
[OFFSET n { ROW | ROWS }]
[FETCH { FIRST | NEXT } [{ n | n PERCENT }] { ROW | ROWS }
{ ONLY | WITH TIES }]
在上面的语法中,ROW 和 ROW 是一样的, FIRST 和 NEXT 是一样的。
ONLY 与 WITH TIES
ONLY 表示只显示前几条/前百分之多少条; WITH TIES 必须跟 ORDER BY 联合使用,否则没有效果。
举例说明 WITH TIES 的作用:
查询表中所有数据:
SQL> select * from cyt
order by id;
ID
----------
1
2
3
3
3
只取前3条数据:
SQL> SELECT * FROM cyt
ORDER BY id
FETCH FIRST 3 ROWS ONLY;
ID
----------
1
2
3
只取前3条,但如果后面有相同数据(排序列),也一并取出来:
SQL> SELECT * FROM cyt
ORDER BY id
FETCH FIRST 3 ROWS WITH TIES;
ID
----------
1
2
3
3
3
使用限制
- 不能跟 for update 子句同用
- 在 DELETE 和 UPDATE 的子查询中不能使用
- 使用该子句时,SELECT 后面不能出现 CURRVAL or NEXTVAL