Sql server SQL Server 2008中mysql“LIMIT”子句的等效语法是什么
我知道sqlserver中没有限制x,y,而我使用的是: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
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