And*_*iev 4 sql oracle oracle11g
我正在查询并尝试从数据库中获取随机数量的行,但 Oracle 一直告诉我我的命令没有正确结束。
select *
from random_table
order by random_column_name
offset 0 rows
fetch first 10 rows only
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的代码。
我将不胜感激任何支持,因为我花了相当多的时间寻找我得到的结果的解释,但无济于事。
tha*_*ith 10
该语法直到 Oracle Database 12c 才有效。
你会说
select *
from random_table
where rownum < 11
order by random_column_name;
Run Code Online (Sandbox Code Playgroud)
上述方法在 Oracle 11.2 中都不适合我,所以这是另一种方法
select * from (
select random_table.*,
row_number() over (ORDER BY update_date DESC) line_number
FROM random_table where status = 100
) WHERE line_number between 5 AND 10
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,我添加了对状态的过滤并按最新的 update_date 进行排序,但可以是任何内容。
这里的分页由起点 (5) 和终点 (10) 确定,如上所示。如果需要的话,这使得根据页码和页面大小(在本例中为页面 2,页面大小为 5)进行计算变得容易。
| 归档时间: |
|
| 查看次数: |
13547 次 |
| 最近记录: |