需求描述
当查询结果返回大量数据情况下,比如报表查询。需要按一定条件排序提供分页呈现数据。
INFORMIX实现方案:Informix 数据库提供了非常便捷、高效的SQL。
SELECT SKIP M FIRST N FROM TABLENAME WHERE 1=1 ORDER BY COL;
SQL应用举例
原始数据
name course score
---------------------------------------
张三 语文 74
张三 数学 99
张三 物理 93
李四 物理 94
李四 语文 78
李四 数学 84
按成绩排名输出,要求每页呈现2条记录。如何利用SQL实现分页功能:
第一页:
select skip 0 first 2 * from test_rowcols where 1=1 order by score;
name course score
---------------------------------------
张三 语文 74
李四 语文 78
第二页:
select skip 2 first 2 * from test_rowcols where 1=1 order by score;
name course score
---------------------------------------
张三 物理 85
李四 物理 86
第三页:
select skip 4 first 2 * from test_rowcols where 1=1 order by score;
name course score
---------------------------------------
李四 数学 94
张三 数学 99
应用总结,从上面的SQL及数据结果输出来看,我们只需要在我们的应用程序中控制M,N即可。
说明:M 为第几页*每页记录数-每页记录数;N 为每页记录数。