select 多列 SQL 时如何使用 distinct

How to use distinct when you select multiple column in SQL

我使用了简单的内部连接语句并将结果输入到 CTE table。我想 select 与 CTE 不同 'ServiceId'。我有以下查询

  SELECT DISTINCT(ServicesId), ServiceNo, ServiceDate, DealerCode FROM CTE_Temp

假设 CTE 中有重复的 ServiceId 条目,那么我只想 select 第一个条目并忽略其余条目。

您可以为此使用 ROW_NUMBER() OVER()。只需替换 ORDER BY 中的列即可定义第一个。

;WITH AnotherCTE AS(
    SELECT 
        ServicesId, ServiceNo, ServiceDate, DealerCode,
        RN = ROW_NUMBER() OVER(PARTITION BY ServicesID ORDER BY ServiceDate DESC)
    FROM CTE_Temp
)
SELECT 
    ServicesId, ServiceNo, ServiceDate, DealerCode
FROM AnotherCTE
WHERE RN = 1