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
MS-SQL中是否有“起始点”等效项?_Sql_Sql Server - Fatal编程技术网

MS-SQL中是否有“起始点”等效项?

MS-SQL中是否有“起始点”等效项?,sql,sql-server,Sql,Sql Server,某些数据库支持以下命令: SELECT TOP 10 START AT 10 * FROM <TABLE> 基本上,我需要提取前10条记录,然后是下10条记录,然后是下10条记录,等等。也许还有其他方法可以做到这一点,但在过去,对于支持“从开始”的数据库,我已经像上面那样做了。哪个版本的SQL Server SELECT Top 10 * FROM Table WHERE <primary key> Not IN ( SELECT Top 10 <pr

某些数据库支持以下命令:

SELECT TOP 10 START AT 10 * FROM <TABLE>

基本上,我需要提取前10条记录,然后是下10条记录,然后是下10条记录,等等。也许还有其他方法可以做到这一点,但在过去,对于支持“从开始”的数据库,我已经像上面那样做了。

哪个版本的SQL Server

SELECT Top 10 * 
FROM Table 
WHERE <primary key> Not IN (
    SELECT Top 10 <primaryKey> 
    FROM Table 
    ORDER BY <primary Key> ASC) 
ORDER BY <primary Key> ASC
在SQLServer2000中,这是一个真正的痛苦,尽管可能使用stingyjack发布的丑陋技巧

在2005年及以后的版本中,它变得更简单了——看看函数


而且,取决于您的客户端应用程序,这甚至可能没有那么难。一些ASP.Net网格控件支持自动分页。

如果希望与SQL Server 2000兼容,可以使用

SELECT * FROM
(
    SELECT TOP 10 FROM
    (
        SELECT TOP (n * 10) FROM <table> ORDER BY (column) ASC
    ) AS t1 ORDER BY (column) DESC
) AS t2 ORDER BY (column) ASC
为了


我很好奇,除了Sybase SQL Anywhere之外,还有哪些数据库支持START AT子句?很高兴看到SQL Server最终添加了某种指定偏移量的功能!这种语法似乎与DB2、Derby和Ingres兼容…@LukasEder-它是SQL:2008标准Hmm,但在5CD2-02-Foundation-2006-01.pdf中没有提到对837页的这种扩展。但这只是一个草稿,所以可能在最终的SQL:2008标准文档中,他们实际上添加了该条款…?注释只能编辑5分钟单击此框dismiss@LukasEder-我不知道。我只是不按你说的去做。我也没有复印件。
WITH Orders AS 
(
     SELECT SalesOrderID, OrderDate, 
     ROW_NUMBER() OVER (order by OrderDate) AS 'RowNumber' 
     FROM SalesOrder
) 
SELECT * 
FROM Orders 
WHERE RowNumber between 10 and 19;
SELECT * 
FROM <TABLE>
ORDER BY <SomeCol>
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY;