猿问

SQL Server中的限制10.20

SQL Server中的限制10.20

我试着做这样的事情:

SELECT * FROM table LIMIT 10,20

SELECT * FROM table LIMIT 10 OFFSET 10

但是使用SQL Server

唯一我找到了解决办法看起来是过度杀人:

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

我也发现:

SELECT TOP 10 * FROM stuff;

..但这不是我想要做的,因为我不能指定起止点。

我还有别的办法吗?

另外,奇怪的是,SQLServer为什么不支持LIMIT功能还是类似的东西?我不想变得刻薄,但这听起来真的像是DBMS需要的东西.如果是的话,那么我很抱歉这么无知!在过去的5年里,我一直在使用MySQL和SQL+,所以.


largeQ
浏览 628回答 3
3回答

郎朗坤

正如您所发现的,这是首选的SQL Server方法:SELECT&nbsp;*&nbsp;FROM&nbsp;(&nbsp; &nbsp;&nbsp;SELECT&nbsp;*,&nbsp;ROW_NUMBER()&nbsp;OVER&nbsp;(ORDER&nbsp;BY&nbsp;name)&nbsp;as&nbsp;row&nbsp;FROM&nbsp;sys.databases&nbsp; &nbsp;)&nbsp;a&nbsp;WHERE&nbsp;a.row&nbsp;>&nbsp;5&nbsp;and&nbsp;a.row&nbsp;<=&nbsp;10
随时随地看视频慕课网APP
我要回答