Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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数据库上使用限制N,M吗_Sql_Sql Server_Visual Studio 2010_Sql Server 2008_Limit - Fatal编程技术网

我可以在SQL Server数据库上使用限制N,M吗

我可以在SQL Server数据库上使用限制N,M吗,sql,sql-server,visual-studio-2010,sql-server-2008,limit,Sql,Sql Server,Visual Studio 2010,Sql Server 2008,Limit,我有以下SQL语句: SELECT [id], [name] FROM [dbo.test_db_002] t1 LEFT JOIN [dbo.test_db_003] t2 ON t1.[id] = t2.[itmid] ORDER BY t2.[iid] ASC; 这看起来很简单,但我搞不懂。我需要将limitn,M添加到它,以从第N个项目中检索M个项目,但我在LIMIT这个词周围不断出现错误。我试着在上面的sql语句中尽可能地将限制子句放在任何地方,但没有成功 另外,我是为VS2010附

我有以下SQL语句:

SELECT [id], [name]
FROM [dbo.test_db_002] t1
LEFT JOIN [dbo.test_db_003] t2 ON t1.[id] = t2.[itmid]
ORDER BY t2.[iid] ASC;
这看起来很简单,但我搞不懂。我需要将limitn,M添加到它,以从第N个项目中检索M个项目,但我在LIMIT这个词周围不断出现错误。我试着在上面的sql语句中尽可能地将限制子句放在任何地方,但没有成功

另外,我是为VS2010附带的SQL Server编写的。

您可以使用

例如:

select * from 
(
  select cola, colb, row_number() over (order by col1 desc) as row
  from table ) x
where row between value1 and value2
你可以用

例如:

select * from 
(
  select cola, colb, row_number() over (order by col1 desc) as row
  from table ) x
where row between value1 and value2

SQL Server中没有与限制N,M直接等效的方法,但您可以执行以下操作:

SELECT * FROM
  (SELECT *, ROW_NUMBER() OVER (ORDER BY name) as row FROM MyTable) a
WHERE row > 5 and row <= 10

有关更多信息,请参见此处:

SQL Server中没有与限制N,M直接等效的内容,但您可以执行以下操作:

SELECT * FROM
  (SELECT *, ROW_NUMBER() OVER (ORDER BY name) as row FROM MyTable) a
WHERE row > 5 and row <= 10

有关更多信息,请参见此处:

要回答您的查询,您可能需要:取决于M和N的值

需要注意的是,介于N和N+M之间的值


此外,这里还有一个链接,其中包含有关我使用的with cte语法的信息。

要回答您的查询,您可能需要:取决于M和N的值

需要注意的是,介于N和N+M之间的值


此外,这里还有一个链接,其中包含有关我使用的with cte语法的信息。

sql server 2012中带偏移量的限制:

SELECT email FROM myTable
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY;
//偏移量-跳过的行数


//下一行-sql server 2012中需要的下一行数

带偏移量的限制:

SELECT email FROM myTable
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY;
//偏移量-跳过的行数


//next-所需的下一行数

请参见:N和M的值是静态的还是可变的。如果您愿意等待denali,请参见:N和M的值是静态的还是可变的。如果您愿意等待denali,而使用行数是正确的答案,则您的示例在SQL Server上不起作用。您需要使用子查询或CTE,如其他答案所示。虽然使用行号是正确答案,但您的示例在SQL Server上不起作用。您需要使用子查询或CTE,如其他答案所示。谢谢,但我如何在查询中使用所有这些怪物?很抱歉,调用您的代码-我实际上指的是SQL Server…谢谢,但我如何在查询中使用所有这些怪物?很抱歉,调用您的代码-我实际上指的是SQL Server…天哪!难怪我自己想出来的时候头发都没了让我试试吧…天哪!怪不得我自己想出来后头发都没了让我试试。。。