SQL Server TOP(1)与不同

Dar*_*der 4 sql database sql-server dml

我试图在排序结果后提取我得到的第一行i_version_id.如果我不使用TOP(2),我的查询按预期工作,并返回由i_version_id排序的所有结果.但是当我添加TOP(2)(如下所示)时,它表示附近存在语法错误distinct.请让我知道我做错了什么.

SELECT TOP(2) 
    distinct(i_version_id) 
FROM 
    [PaymentGateway_2006].[dbo].[merchant] 
WHERE 
    dt_updated_datetime > '2013-11-11'
GROUP BY
    i_version_id 
ORDER BY 
    i_version_id;
Run Code Online (Sandbox Code Playgroud)

D S*_*ley 13

如果你只是得到了TOP 1那么distinct无关紧要.它也无关紧要,因为按列分组会给你不同的值,

但是,如果您想要多个,只需删除括号:

SELECT DISTINCT TOP(2) 
    i_version_id
FROM 
    [PaymentGateway_2006].[dbo].[merchant] 
WHERE 
    dt_updated_datetime > '2013-11-11'
GROUP BY
    i_version_id 
ORDER BY 
    i_version_id;
Run Code Online (Sandbox Code Playgroud)

  • 是的,但假设我需要 2 个不同的顶级结果。 (2认同)