T-SQL查询仅选择在特定列中没有唯一值的行

MSO*_*ACC 1 sql t-sql sql-server

我在SQLServer中有一个表,其中包含以下三列:

  • 行ID
  • RMA

RowID是唯一的,但RMA和Value不是.

我想编写一个查询,从表中选择共享任何特定RMA的所有行.所以我们假设我们有以下三行

ID  RMA   Value
1 - 222- Car
2 - 923 - Boat
3 - 222 - Plane
4 - 555 - Other
5 - 555 - Jet
Run Code Online (Sandbox Code Playgroud)

我想要一个将返回行1,3,4和5的查询.不会选择第2行,因为它的RMA只出现一次.

我甚至不知道从哪里开始.我需要使用这个COUNT()功能吗?

And*_*yev 5

你可以使用这样的东西:

select * 
from your_Table
where RMA in 
    (
        select RMA
        from your_table
        group by RMA
        having count(RowID) > 1
    )
Run Code Online (Sandbox Code Playgroud)

内部查询为您提供不止一次出现的RMA,而外部给出具有这些RMA的记录.