我可以在SQL Server数据库上使用限制N,M吗
我有以下SQL语句:我可以在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附
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…天哪!难怪我自己想出来的时候头发都没了让我试试吧…天哪!怪不得我自己想出来后头发都没了让我试试。。。