1

我正在尝试获取内联视图中的最大值,但它正在返回内联视图中的最大值,就好像内联视图没有 TOP 子句一样。

下面查询中的表 dbo.Details 包含 650 条记录。我需要获取前 200 条记录的最大值,但下面的查询可以获取详细信息表中 BatchNumber = 341 的所有记录的最大值。

是否有一些我遗漏的微妙点?我的目标是在 TOP(200) 记录中获得最大值。 我正在使用 SQL Server 2008 R2。

SELECT   MAX(a.DetailsRecordID)  FROM (SELECT TOP(200) npd.DetailsRecordID,    
    npd.BatchNumber  FROM dbo.Details npd WHERE npd.BatchNumber = 341) a
4

1 回答 1

3

前 200 名没有任何依据。没有订单。

即使是具有集群 PK 的表,如果没有 order by,也无法保证顺序。

于 2013-08-15T16:24:25.507 回答