选择不同的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;
是有可能的多个列这样做呢?
答
您可以按名称使用的分区,然后键入如下
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;
可以超过1列分区。只需将分区更改为名称即可。 –
正如肖恩所说,使用“按名称分区,类型”,但要清楚,不选择不同的行,选择最后一个基于'dateAdded'。 –
请提供一些样本数据并解释如何获得结果。 –