获取唯一记录列表

时间:2014-04-11 08:33:21

标签: sql sql-server sql-server-2008

我有下表列出了员工及其相应的经理:

id | employeeid | managerid
1  | 34256      | 12789
2  | 21222      | 34256
3  | 12435      | 34256
.....
.....

在单个列表中列出所有不同员工(id)的推荐方法是什么 请注意,所有经理可能都不会列在employeeid列下(因为他可能没有依次拥有经理)。

3 个答案:

答案 0 :(得分:2)

如果我理解正确的话: 这将统一所有区域员工避免两列之间的重复(UNION

SELECT employeeid  AS Employee
FROM tableA
UNION
SELECT managerid AS Employee
FROM tableA

答案 1 :(得分:0)

这应该是:

SELECT DISTINCT employeeid FROM yourtablename

但严重的是,通过Google搜索关键字" distinct"你本可以很容易地发现自己!或者我错过了什么?

答案 2 :(得分:0)

SELECT id, employeeid, managerid
FROM
(SELECT yourtablename.*,
ROW_NUMBER() OVER (PARTITION BY managerid ORDER BY employeeid DESC) AS RN
FROM yourtablename) AS t
WHERE RN = 1
ORDER BY ID