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;