易截截图软件、单文件、免安装、纯绿色、仅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


相关问答:

MS SQL作业问题 - MS-SQL Server / 应用实例

如何在SQL2005中设定定时作业,比如说定时清理某些表的数据,
或者是定时的将某些表的数据导出excel!
在线等待,急急急,最好是详细步骤!
之前我做的作业有点问题!
帮UP

参考:http://hi.baidu.com/toiota ......

求一个SQL语句 - MS-SQL Server / 基础类

字段1,字段2.....字段N,Status,ParentID
1,Name1....test1,1,99
1,Name1....test1,3,99
1,Name2....test2,1,101
1,Name2....test2,3,101
1,Name3....test3,2,101
1,Name1....test1,4,101
想要的结果是:
1,Na ......

SQL语句问题 - MS-SQL Server / 疑难问题

请教高手:
 以下是数据库中的三条记录,英文为字段名称  
  id planname TaskBeginTime Status
329 2010年03 ......

c# Winform 触摸屏程序 - .NET技术 / C#

公司开发一个触摸屏程序,我负责的一块,实现这样一个功能,当鼠标点击窗口中图片(一张图分成几部分)的其中一部分时,将这部分图片截取出来,弹出新的窗口,将截取出的图片显示出来。我使用Rectange类控制了返回, ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号