我使用简单的内连接语句并将结果输入到CTE表中。我想从CTE中选择不同的'ServiceId'。我有以下查询
SELECT DISTINCT(ServicesId), ServiceNo, ServiceDate, DealerCode FROM CTE_Temp
假设CTE中有重复的ServiceId条目,那么我只想选择第一个条目而忽略其余条目。
答案 0 :(得分:3)
您可以使用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