【发布时间】:2013-12-27 15:03:26
【问题描述】:
LIMIT 子句可用于限制 SELECT 语句返回的行数。
我为 SQL server(2008) 寻找了一个等效的 LIMIT 子句并找到了这个:
SELECT *
FROM (SELECT TOP 30 field1,
field2
FROM (SELECT TOP 10 field1,
field2
FROM matable
ORDER BY mycolumn ASC) AS tbl1
ORDER BY mycolumn DESC) AS tbl2
ORDER BY mycolumn ASC
显示 10 行中的 30 行
效果很好!!但是当我增加要从中提取数据的数量时,它会花费很多时间。有人知道如何改进 SQL Server 2008 的此查询吗? (我的表包含很多行,我将此请求与 PHP 和 Jquery 一起使用以在浏览器中显示数据)
【问题讨论】:
-
您的查询从正在拉取
top 10的子查询返回top 30。那没有意义。您的真实查询是什么样的? -
您是否尝试创建索引?
-
您正在从整个表格中进行选择。也许 where 子句会加快速度。
-
@Gordon Linoff:结果集是 20 行,我的查询看起来像这样,只是我更改了 Field1,... 使用真实的列名。
-
@Bogdan Sahlean:我没有,但是我必须在哪一列创建索引?
标签: sql sql-server-2008