在sql server 2008中的三列不同

时间:2014-12-08 11:33:07

标签: sql asp.net sql-server-2008

我有一个20列表,它具有重复值但不在所有列中。什么正常的不同条款不起作用.. 所以我想在三列(名称,fname,dob)上应用distinct,但是如何? 。请给我任何解决方案。

1 个答案:

答案 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