我有一个20列表,它具有重复值但不在所有列中。什么正常的不同条款不起作用.. 所以我想在三列(名称,fname,dob)上应用distinct,但是如何? 。请给我任何解决方案。
答案 0 :(得分:3)
您可以将ROW_NUMBER
与common-table-expression(CTE)一起使用:
WITH CTE AS
(
SELECT t.*, RN = ROW_NUMBER() OVER (PARTITION BY name,fname,dob ORDER BY name,fname,dob)
FROM dbo.TableName t
)
SELECT * FROM CTE WHERE RN = 1
每组需要一个。根据您的逻辑更改ORDER BY name,fname,dob
。