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


相关问答:

sql小小的疑问 - .NET技术 / C#

可能因为工作的原因 接触数据库这块比较少,之前都是做程序这块,数据库这块都有专门的人来做 分工都很明细 所以对数据库这一块完全不了解。前段时间 去面试了几家公司 几乎都是在数据库这块挂掉的 连个简单的SQ ......

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

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

求一SQL - MS-SQL Server / 基础类

tab1 字段:billdate,goodsid,incount,inmoney,outcount,outmoney,endprice,endcount,endamt
tab2 字段:goodsid,goodskind(商品类型)
tab3 字段:goodskind(商品类型),kindname
结果:
得到商品类型在一段时间 ......

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

公司开发一个触摸屏程序,我负责的一块,实现这样一个功能,当鼠标点击窗口中图片(一张图分成几部分)的其中一部分时,将这部分图片截取出来,弹出新的窗口,将截取出的图片显示出来。我使用Rectange类控制了返回, ......

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

现在有一个部门表dept(部门名称,部门号。。)有一个人员表emp(姓名,人员编号,职位,薪资,部门)
emp表中的内容是这样的:
a 1 工程师 3000 软件部
b 2 普通员工 2000 硬件部
c 3 工程师 4000 硬件部
d ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号