关于SQL Server SQL语句查询分页数据的解决方案

2016-01-29 16:26 3 1 收藏

关于SQL Server SQL语句查询分页数据的解决方案,关于SQL Server SQL语句查询分页数据的解决方案

【 tulaoshi.com - SQLServer 】

 

比如:要求选取 tbllendlist 中 第3000页的记录,每一页100条记录。

----------
方法1:
----------
select top 100 * from tbllendlist
where fldserialNo not in
(
select top 300100 fldserialNo from tbllendlist
order by fldserialNo
)
order by fldserialNo

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/sqlserver/)

----------
方法2:
----------
SELECT TOP 100 *
FROM tbllendlist
WHERE (fldserialNo
(SELECT MAX(fldserialNo)
FROM (SELECT TOP 300100 fldserialNo
FROM tbllendlist
ORDER BY fldserialNo) AS T))
ORDER BY fldserialNo

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/sqlserver/)

方法1执行速度比较快!

不过,这种做法还是很麻烦,强烈期待微软发明新的可分页的SQL语句来!!!!

 

来源:https://www.tulaoshi.com/n/20160129/1498575.html

延伸阅读
标签: SQLServer
  1. 查看数据库的版本     select @@version   2. 查看数据库所在机器操作系统参数     exec master..xp_msver   3. 查看数据库启动的参数           sp_configure         4. 查看数据库启动时间&...
问题: 我尝试在一个存储过程中传递一系列以逗号划定界限的值,以限制结果集。但是无论什么时候,我在IN子句中使用变量,都会得到错误信息。是否存在一种不执行动态SQL语句也能完成查询的方式呢? 专家解答: 这里存在一种不执行动态SQL语句也能完成查询的方式,但是首先让我们来探究这个问题。我将在以下例子中运用Advent...
问题说明: 有时需要在两个或三个数据库的表中,通过相关关键字,查询获取所需记录集,用一般的SQL查询语句是实现不了的,可通过ACCESS的跨库查询功能实现。   解决方法: 例如“装材类型”和“装材”两张表是在不同的数据库中的,具体查询方法,如下: @"Select * from 装材类型 as a INNER JOIN [;database=" + AppDomain.Curre...
标签: SQLServer
在Access中进行时间的比较sql语句很简单,如Select * From table Where thetime#"& Now() &"#这样即可     在MSSQL就不能这样,要用DateDiff语句和GetDate()函数进行比较。     如Select Count(*) From table Where DateDiff(s,GetDate(),thetime)0,我自己特别做了个50万条数据的的表,执...
前些时间看了玉开兄的“如此高效通用的分页存储过程是带有sql注入漏洞的”这篇文章,才突然想起某个项目也是使用了累似的通用分页存储过程。使用这种通用的存储过程进行分页查询,想要防SQL注入,只能对输入的参数进行过滤,例如将一个单引号“'”转换成两个单引号“''”,但这种做法是不安全的,厉害的黑客可以通过编码的方式...

经验教程

106

收藏

91
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部