假如tb_customer表中的数据量非常大,在显示时要分页显示而且每页只显示10条信息.为了效果我们取第三页的数据. 方法一:遍历两次表,取不同的数据. select top 10 * from tb_customer(nolock)where c_no not in(select top 20 c_no from tb_customer)order by c_no 方法解析:方先取出前20条的c_no(前两页),排除前20条数据的c_no,然后在剩下的数据里面取出前10条数据. 缺点:遍历表
sql分页查询: select * from ( select ROW_NUMBER() over(order by 排序条件) as rowNumber,* from [表名] where 条件 ) as t where t.rowNumber>=@firstData and t.rowNumber<=@endData @firstData代表起始条数,值为(当前页数-1)*每页条数+1:@endData代表结束条数,值为当前页数*每页条数 Access分页查询:(降序查询) string
工作需要导出几万的数据量.操作比较频繁.之前数据在七八千是数据导出很慢.phpExcel是方便但是性能一般.现在改为使用csv导出数据:可以缓解内存压力,一次导出两三万是没问题的.当然服务器内存给力,加上数据库优化相信这个还是比较方便的. 具体方法如下: 在Think文件下新建Csv.class,php { //导出csv文件 public function put_csv($list,$title){ $file_name="CSV".date("mdHis",t
听同事分享几种数据库的分页查询,自己感觉,还是需要整理一下MS SqlSever的分页查询的. Sql Sever 2005之前版本: select top 页大小 * from 表名 where id not in ( ) id from 表名 order by id ) order by id 例如: * --10 为页大小 from [TCCLine].[dbo].[CLine_CommonImage] where id not in ( --40是这么计算出来的:10*(5-1) --
方法一 假设现在有这样的一张表: CREATE TABLE test ( id int primary key not null identity, names ) ) 然后向里面插入大约100条数据,进行分页测试 假设页数是10,现在要拿出第5页的内容,查询语句如下: --10代表分页的大小 * from test where id not in ( --40是这么计算出来的:10*(5-1) id from test order by id ) order by id 原理:需要拿出数据库的