选择不同的2列,但返回SQL Server的所有列

选择不同的2列,但返回SQL Server的所有列

问题描述:

有没有办法选择2列的不同,但返回所有列?选择不同的2列,但返回SQL Server的所有列

例如

select distinct name, type 
from dbo.Table 

dbo.Table返回所有列?

我发现这个解决方案,为单列的作品,

SELECT 
    * 
FROM 
    (SELECT 
     [name], [type], 
     [col1], [col2], [col3], 
     [etc], [dateAdded], [ID], 
     ROW_NUMBER() OVER (PARTITION BY type ORDER BY dateAdded DESC) rownumber 
    FROM 
     [dbo].[Table]) a 
WHERE 
    rownumber = 1; 

是有可能的多个列这样做呢?

+3

可以超过1列分区。只需将分区更改为名称即可。 –

+1

正如肖恩所说,使用“按名称分区,类型”,但要清楚,不选择不同的行,选择最后一个基于'dateAdded'。 –

+2

请提供一些样本数据并解释如何获得结果。 –

您可以按名称使用的分区,然后键入如下


SELECT * from(select 
    [name] 
    ,[type] 
    ,[col1] 
    ,[col2] 
    ,[col3] 
    ,[etc] 
    ,[dateAdded] 
    ,[ID] 
    ,ROW_NUMBER() OVER(Partition by name, type order by dateAdded DESC) rownumber from [dbo].[Table]) a where rownumber = 1;