提到Oracle的分析函数,最常用的就是row_number、rank、dense_rank这3个函数,具体的用法有无数的文章写过,就不重复了,这里只描述一个row_number的使用场景。
大家都知道,分页是个比较复杂的问题,如果数据量比较大,前台一次性缓存的性能就很差,一般都会考虑后台分页取数,这时就需要数据库做分页支持。然后oracle数据库并没有MYSQL里面的limit语法,所以分页一般都用子查询做支持,接下来尝试一下常用的几种SQL分页写法,先建一张测试数据表,并写入100万条数据用于测试。
设定2个变量,每页N_COUNTPERPAGE条,取第N_PAGE页数据,假设N_COUNTPERPAGE=10,N_PAGE=70001,应该取出sn在(700001~700010)的数据
第一种SQL写法: