且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在两列中查找重复记录的唯一记录

更新时间:2023-01-29 20:35:28

如果您还想排除给定ID的任何单独记录,则:

If you also want to exclude any lone records for a given ID:

create table #data
(
    id varchar(10),
    [name] varchar(50)
)

insert into #data
values
    ('XXX-23305','Edward, Stue^Jenna'),
    ('XXX-23306','Cole, Slaw^Bali'),
    ('XXX-23306','Cole, Slaw^Bali'),
    ('XXX-23306','Cole, Slaw^Bali'),
    ('XXX-23310','Zerg, War^Finja'),
    ('XXX-23310','Road^Sieglinde'),
    ('XXX-23319','Gras, Dr.Carl^Yolo'),
    ('XXX-23319','Gras, Dr.Carl^Yolo');

with d as
(   
    select distinct
        id,
        [name]
    from #data
)
select *
from d
where d.id in
(   
    select d.id
    from d
    group by d.id
    having count(*) > 1
)

drop table #data

返回XXX-23310的两个记录,但不返回XXX-23305的其他记录:

Returns the two record for XXX-23310, but not XXX-23305 as other answers would do:

/-----------------------------\
| id        | name            |
|-----------|-----------------|
| XXX-23310 | Road^Sieglinde  |
| XXX-23310 | Zerg, War^Finja |
\-----------------------------/