一尘不染

SQL选择不同的前2个

sql

如果我有一个名为[Part]的表,其中包含[PartID],[IDNumber]和[Length]列以及数据:

[PartID]  [IDNumber]  [Length]
1         Test1       50
2         Test1       60
3         Test2       50
4         Test3       70

如何只选择ID编号不同的前2条记录?搜索了一点之后,我一直无法找到符合我想要的查询。我希望结果看起来像这样:

[PartID]  [IDNumber]  [Length]
1         Test1       50
3         Test2       50

我现在所拥有的:

Select distinct top 2
        [PartID],
        [IDNumber],
        [Length]
from
    [Part]

为了澄清PartID实际上是一个GUID。我以为为每条记录写出GUID会使示例数据有些混乱。


阅读 124

收藏
2021-05-16

共1个答案

一尘不染

SELECT DISTINCT TOP 2 PartId, IdNumber, Length
FROM
(   SELECT PartId, IdNumber, Length, ROW_NUMBER() over(partition by IdNumber order by Length) Orden
    FROM [Ayuda]
) A
WHERE A.Orden = 1
ORDER BY Length
2021-05-16