我想只获取列newcons
中包含重复条目的行。在结果中,我想要显示整个行recno
和oldcons
,并且应该出现newCons
。我可以使用什么SQL查询来执行此操作?
这是我的表:
RecNo OldB OldCons NewCons
1 01 0145501 0008000
2 01 0253801 0107400
3 01 0271200 0000500
4 01 0271201 0012000
5 01 0271202 0000200
6 01 0271300 0000800
7 01 0271301 0001100
8 01 0271302 0002000
9 01 0271303 0001000
10 01 0271304 0001000
这个结果应该出现:
RecNo OldBch OldSdiv OldCons NewSdiv NewCons
9 01 14433 0271303 14433 0001000
10 01 14433 0271304 14433 0001000
我该怎么做?
答案 0 :(得分:2)
此查询将为每个副本提供一行:
select * from tbl a join tbl b on a.newcons = b.newcons and a.recno > b.recno
要查找重复的NewCons
值:
select newcons from tbl group by newcons having count(*) > 1
现在,只需将其嵌入常规SELECT
:
select * from tbl where newcons in (select newcons from tbl group by newcons having count(*) > 1)