Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 获取唯一记录的列表_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql 获取唯一记录的列表

Sql 获取唯一记录的列表,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,下表列出了员工及其相应的经理: id | employeeid | managerid 1 | 34256 | 12789 2 | 21222 | 34256 3 | 12435 | 34256 ..... ..... 在一个列表中列出所有不同员工(id)的推荐方法是什么。 请注意,可能不会在employeeid列下列出所有经理(因为他可能没有轮流的经理)。这应该包括: SELECT DISTINCT employeeid FROM yourtablenam

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

id | employeeid | managerid
1  | 34256      | 12789
2  | 21222      | 34256
3  | 12435      | 34256
.....
.....
在一个列表中列出所有不同员工(id)的推荐方法是什么。
请注意,可能不会在employeeid列下列出所有经理(因为他可能没有轮流的经理)。

这应该包括:

SELECT DISTINCT employeeid FROM yourtablename

但说真的,通过谷歌搜索关键词“distinct”,你自己可能会很容易发现!还是我遗漏了什么?

如果我理解正确: 这将统一所有不同的员工ID,避免两列之间的重复(
UNION


请阅读employeeid上问题的最后一行,它不会给我所有的员工。好吧,如果你的意思是你的经理没有被列为员工,你需要在员工id列表中添加经理id列表,那么这意味着你的数据模型不好。所有经理都应该是员工,允许managerid字段为空,或者是一个默认数字,表示他们在层次结构的顶部。难道不是应该是工会上的一个独特的而不是一个不同的工会吗?还是工会会消除重复?只需询问我的个人信息:-)是的,你说得对
Union
将删除重复项:)
SELECT employeeid  AS Employee
FROM tableA
UNION
SELECT managerid AS Employee
FROM tableA
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