易截截图软件、单文件、免安装、纯绿色、仅160KB

大家好,我问个sql的 - .NET技术 / C#

有10W条数据,要取出90000到900010之间 的10条记录

效率最快的语句怎么写??
select top 10 * from tab where id>=90000 and id<900011

ID是主键,速度不会慢 否则,怎么写都是慢

select top 每页显示的记录数 * from topic where id not in  
 (select top (当前的页数-1)×每页显示的记录数 id from topic order by id desc)  
 order by id desc  

with temptbl as (  
  SELECT ROW_NUMBER() OVER (ORDER BY id desc)AS Row,  
  ...  
)  
SELECT * from temptbl where Row between @startIndex and @endIndex

select top 10 * from tab where id>=90000 and id<900011



select * from tab where id BETWEEN 90000 and 900010

引用
select top 10 * from tab where id>=90000 and id<900011

ID是主键,速度不会慢 否则,怎么写都是慢

up

如果有主键ID(从1开始递增),用1楼的方法
如果没有主键ID,你的数据库是SQLSERVER2005或2008
用下面的语句

SELECT A.*
from ( SELECT TOP 90010 *,
  ROW_NUMBER() OVER ( ORDER BY 表.主键字段 DESC ) AS RowNumber
  from 表
  WHERE 条件
  ) A
WHERE A.RowNumber BETWEEN 90001 AND 90010
ORDER BY A.RowNumber

如果你有RowNumber的话,当然使用它。

SQL写的越复杂越慢

select top 1


相关问答:

数据以xml格式返回 - MS-SQL Server / 应用实例

从数据库中查询一张表的数据
select 部门,姓名 from tb
如何才能生成下面的xml格式
XML code:
<folder state="unchecked" label="全部">
   <folder state="unchecked&qu ......

使用带用户名和密码的ACCESS连接方式 - .NET技术 / C#

使用ACCESS最大的隐患就是不安全。今天对ACCESS数据库设置了一个密码,必须使用密码才能打开,但是在程序中却无法连接数据库了。大家知道使用用户名和密码,如何连接ACCESS数据库?貌似ACCESS的用户名还不知道?只知 ......

sql 问题 - MS-SQL Server / 基础类

需求如下:
学院 academy(aid,aname)
班级 class(cid,cname,aid)
学生 stu(sid,sname,aid,cid)
住宿区 region(rid,rname)
宿舍楼 build(bid,rid,bnote) bnote是‘男’/‘女’
宿舍 dorm(did,rid,bid,bedn ......

c# listview添加合计行 - .NET技术 / C#

用listview显示出从数据库中查询出的记录,想在最后记录后面添加一条合计行,如何实现!谢谢大家!
绑定数据你应该没问题吧,绑定完以后用一个循环把你要统计数据的列中的数据总和用一个变量接受,然后在循环外面ne ......

VS2008操作Access问题 - .NET技术 / C#

VS2008中C#操作Access数据库,网上下载了一个类,可以正常连接,读取数据,但是插入删除操作似乎有问题,以下是部分代码:
数据库类:
namespace AccessDb
{
  public class AccessDbClass
  { ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号