如何在Microsoft SQL Server 2008中使用限制?

时间:2014-07-30 15:13:18

标签: sql-server-2008

我们必须在SQL Server 2008/2012中使用Limit关键字。

我们需要为每个查询应用限制,其中每次启动索引都会更改。当我在google搜索时发现TOP但它对我们不起作用。任何人都可以分享如何在每次启动索引更改的sql server中使用LIMIT关键字。

我们需要在SQL服务器中进行查询,如下所示 -

SELECT * from STOCK LIMIT 11, 10000 (where 11=start index, 10000=size)

4 个答案:

答案 0 :(得分:0)

这对您来说可能不是一个好的长期解决方案,但如果表格有一个标识字段,您可以这样做:

SELECT TOP 1000 * FROM STOCK
WHERE Id > 11
ORDER BY Id

答案 1 :(得分:0)

您可以使用具有窗口功能的CTE,就像在这个SO问题的答案中一样 - > Skip first row in SQL Server 2005?

答案 2 :(得分:0)

你必须使用像ROW_NUMBER()这样的功能,然后从那里指定你想要的东西。

select top 10000 *, row_number() over (order by [YourFieldName]) as row from Stock where row > 11

答案 3 :(得分:-1)

我们已升级到SQL Server 2012并用OFFSET和FETCH替换了查询。样品如下。

SELECT ITEM_ID, PRICE FROM MENU ORDER BY ITEM_ID ASC OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY;