【发布时间】:2011-01-13 03:57:59
【问题描述】:
我正在尝试建立一个邮箱,我们可以在其中对 x 中的邮件进行分组。 如果您将 x 设置为 20,您将在第一页看到消息 1-20,打开第二页将显示消息 21-40,依此类推。
我如何有效地查询这个?我能想到的最好的是:
select top 20 *
from tbl_messages
where
tnr_id not in
(
select top 40 tnr_id —20/40/60/80/…
from tbl_messages
order by dt_made desc, tnr_id desc
)
order by dt_made desc, tnr_id desc
有没有更有效的方法来做到这一点?使用的数据库是 SQL server、oracle 和 sybase。
【问题讨论】:
标签: sql sql-server oracle sybase