Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 如何在Microsoft SQL Server 2008中使用限制?_Sql Server 2008 - Fatal编程技术网

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

Sql server 2008 如何在Microsoft SQL Server 2008中使用限制?,sql-server-2008,Sql Server 2008,我们必须在SQL server 2008/2012中使用Limit关键字 我们需要对开始索引每次都会更改的每个查询应用限制。当我在谷歌上搜索时,发现了TOP,但它对我们不起作用。任何人都可以分享如何在每次开始索引更改的sql server中使用LIMIT关键字 我们需要SQL server中的查询,如下所示- SELECT * from STOCK LIMIT 11, 10000 (where 11=start index, 10000=size) 这对您来说可能不是一个好的长期解决方案,但如

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

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

我们需要SQL server中的查询,如下所示-

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

这对您来说可能不是一个好的长期解决方案,但如果表中有一个标识字段,您可以执行以下操作:

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

您可以使用带有窗口功能的CTE,就像在对这个问题的回答中一样->

您必须使用类似于该功能的东西,然后从中指定所需内容

按[YourFieldName]选择top 10000*,订单上的行号作为库存中的行,其中行>11
我们已升级到SQL server 2012,并将查询替换为偏移和提取。样本如下

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

SQL Server中没有限制。所以你不能用它。TOP到底是什么意思对我们来说不起作用?如果2012年你可以使用LIMIT,它是一个特定于MySQL/Postgres的扩展,不是所有SQL数据库中都可以使用的,它也不是SQL语言标准的一部分。可能的重复借助offset和fetch,我们可以解决SQL server 2012中的LIMIT问题。示例-按项目ID从菜单顺序中选择项目ID、价格ASC偏移量10行仅取下10行;在offset和fetch的帮助下,我们可以解决SQL server 2012中的限制问题。示例-按项目ID从菜单顺序中选择项目ID、价格ASC偏移量10行仅取下10行;我们已迁移到SQL server 2012,并用偏移量和提取量替换了限制。thanksWe已迁移到SQL server 2012,并用偏移量和提取量替换了限制。谢谢