茶壶:
翻了翻以前的东东,好象以前还用过这样一个方法,似乎效率比正反序来得高,特别是大表多页的时候
[阅读: 513] 2006-08-01 22:14:16
-- 设 PageSize=20 , PageNumber = 23
select Top 20 * from TT as TT_Final where TT_Final._Id>=
(
select Top 1 A._ID as AID from
(select top 20 * 23 + 1 _ID from TT /*WHERE 子句*/ order by _ID ) as A left join
(select top 20 * 23 _ID from TT /*WHERE 子句*/order by _ID )as B on (A._ID=B._ID)
where B._ID is null
)
--其中 20*23+1的写法是为了表达意思,当然,SQL语句不能这样写,要写成 461
--这种方法加条件后不用反序,效率应该比前者高。