2017-08-04 157 views
0

有沒有辦法選擇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

請提供一些樣本數據並解釋如何獲得結果。 –

回答

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; 
相關問題