oracle基于单个列重复行

use*_*356 2 sql duplicates oracle11g

如何根据单个列找出重复的行.我在oracle中有一个表,其中包含下面给出的数据,它有重复数据.我正在尝试选择并查看具有重复员工ID的所有行,如下所述

EMP表:

EmpId Fname Lname Mname Jobcode Status exp_date

1      Mike Jordan A    IT      W      12/2014
1      Mike Jordan A    IT      A      12/2014
2      Angela ruth C    sales   P      12/2015
2      Angela ruth C    IT      W      12/2015
3      Kelly  Mike B    sales   W      12/2015
Run Code Online (Sandbox Code Playgroud)

从上表我想要选择所有重复empid的行,如下所示

EmpId Fname Lname Mname Jobcode Status exp_date

1      Mike Jordan A    IT      W      12/2014
1      Mike Jordan A    IT      A      12/2014
2      Angela ruth C    sales   P      12/2015
2      Angela ruth C    IT      W      12/2015
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?谢谢!

Joh*_*Woo 6

SELECT  a.*
FROM    TableName a
        INNER JOIN
        (
            SELECT  EmpID
            FROM    TableName
            GROUP   BY EmpID
            HAVING  COUNT(*) > 1
        ) b ON a.EmpID = b.EmpID
Run Code Online (Sandbox Code Playgroud)

另一种方式,虽然我更喜欢上面,但是使用IN

SELECT  a.*
FROM    TableName a
WHERE   EmpId IN
        (
            SELECT  EmpId
            FROM    TableName
            GROUP   BY EmpId
            HAVING  COUNT(*) > 1
        ) 
Run Code Online (Sandbox Code Playgroud)