【发布时间】:2012-04-22 21:44:48
【问题描述】:
我想用这个 SQL 查询只获取 8 到 10 之间的记录:
select *
from(
SELECT a.*,rownum rn
FROM ACTIVESESSIONSLOG a
ORDER BY USERID ASC)
WHERE rn >= 8 and rn <= 10
当我将这个 SQL 查询实现到分页中时,无论我配置了多少行显示到页面中,我每次都会在第二页上获得 1 行。这个 SQL 查询有效吗?
这是表结构:
-- TABLE ACTIVESESSIONSLOG
CREATE TABLE ACTIVESESSIONSLOG(
ASESSIONID VARCHAR2(30 ) NOT NULL,
USERID VARCHAR2(30 ),
ACTIVITYSTART TIMESTAMP(6),
ACTIVITYEND TIMESTAMP(6),
ACTIVITY CLOB
)
/
最好的祝福
【问题讨论】:
-
您在查找第二页时是否更改了内部查询?
-
查询看起来正确,但我不明白问题到底是什么。
-
如果没有 WHERE 子句,究竟返回多少行?第 2 页执行的查询到底是什么? (不是您所知道的应该,而是您在调试代码时发现了什么?)
-
代码对我来说也很好用 (sqlfiddle.com/#!4/7069a/1)。
标签: sql oracle oracle10g oracle11g