如何在sql中使用max函数和select top

nit*_*igo 2 sql sql-server sql-server-2012

我有一个表,我们将其称为 TempAccount,其中有一列名为 AccountID。它包含 1、2、3...等数字。

我的要求是我应该从前 10 个 AccountID 中选择最大值。

我知道我可以通过创建一个临时表并在其中插入前 10 个值,然后从该表中选择最大值来做到这一点。但我希望是否有任何直接查询可以用来实现这一目标。

就像是MAX(SELECT TOP 10 AccountID FROM TempAccount)

我实现这一目标的最佳方法是什么?

注意:我使用的是 SQL Server 2012

Fka*_*Fka 5

可以使用CTE查询。例子:

WITH CTEQuery (AccountId) AS (
    SELECT TOP 10 AccountId 
    FROM TempAccount
    ORDER BY AccountId
)
SELECT MAX(AccountId) 
FROM CTEQuery
Run Code Online (Sandbox Code Playgroud)