sql-server – 从SQL Server中选择具有匹配列的行

我很确定这很简单,但我尝试的每个例子都失败了.我想查询这样的表
ID   Part_Type   Station_Type
---  ---------   ------------
1    5           234
2    5           846
3    5           234
4    6           585
5    6           585
6    7           465

并返回行1和3,以及4和5.
也就是说,我想返回两列匹配的行.
它类似于这个问题:SO Question但只需要在一张桌子上完成.该查询将为每一行找到匹配项,但我只希望在两列中具有匹配值的行.我怎么去找那个?

谢谢

解决方法

您可以使用以下内容
select t1.id,t1.part_type,t1.station_type
from yourtable t1
where exists (select part_type,station_type
              from yourtable t2
              where t1.part_type = t2.part_type
                and t1.station_type = t2.station_type
              group by part_type,station_type
              having count(id) > 1)

SQL Fiddle with Demo

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...