从表中的多行中查找唯一值

时间:2016-04-21 06:22:08

标签: sql sql-server-2008

ClassID DiagType
123     Final Dx
123     Primary Dx
789     Primary Dx
654     NULL
654     Final Dx
258     NULL

我的表看起来像上面那个,如果有两个相同的ClassID,我想只选择一个条目。长话短说,我只想要每个ClassID一个条目。

2 个答案:

答案 0 :(得分:0)

SELECT ClassID, min(DiagType)
FROM yourtable
GROUP BY ClassID

答案 1 :(得分:0)

由于您没有指定在多个选项的情况下选择哪个DiagType,我假设任何人都会这样做。如果是这种情况,以下解决方案就足够了。我创建了一个CTE,以便可以使用标识符列,如果您有任何

WITH CTE
AS
(
SELECT ROW_NUMBER() OVER ( PARTITION BY ClassId ORDER BY DiagType) AS RowNum,
       ClassId,
       DiagType
FROM TABLE
)
SELECT ClassId, DiagType
FROM CTE
WHERE RowNum = 1