Sql server SQL Server 2008中mysql“LIMIT”子句的等效语法是什么

Sql server SQL Server 2008中mysql“LIMIT”子句的等效语法是什么,sql-server,sql-server-2008-r2,Sql Server,Sql Server 2008 R2,我知道sqlserver中没有限制x,y,而我使用的是: select ROW_NUMBER(),name OVER (ORDER BY name) AS myrow from pack where myrow > 5 and myrow < 10 有什么想法吗 Edit 我看到了,但它并没有解决我的问题。在2005年或更高的时候试试这个- SELECT p.name FROM ( SELECT name , myrow

我知道sqlserver中没有限制x,y,而我使用的是:

 select  ROW_NUMBER(),name OVER (ORDER BY name) AS
 myrow from pack  where myrow > 5 and myrow < 10
有什么想法吗

Edit

我看到了,但它并没有解决我的问题。

在2005年或更高的时候试试这个-

SELECT p.name
FROM ( 
    SELECT  
          name
        , myrow = ROW_NUMBER() OVER (ORDER BY name)  
    FROM dbo.pack
) p
WHERE myrow BETWEEN 5 AND 9
或者在2012年试试这个-

SELECT name
FROM dbo.pack
ORDER BY name 
OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY

在SQL Server 2012中,它包含语法

但是,对于旧版本,您必须在派生表中使用行号


不要按照建议的副本中的建议答案使用3个嵌套的顶部

可能的副本您是否尝试将您的问题标题粘贴到Google?@SLaks:该副本是对该问题的错误回答,通常我会看到该页面,但也有相同的错误。@Mahdi_Nine:您刚刚到达,只需要调整一下syntax@Mahdi_Nine,仅针对MS SQL 2012的第二次查询
SELECT name
FROM dbo.pack
ORDER BY name 
OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY
select
    name
from
    (
    select
       name,
       ROW_NUMBER() OVER (ORDER BY name) AS myrow
    from
       pack
    ) X
where
   myrow > 5 and myrow <= 10