38

我正在尝试查找具有重复值的行,但仅基于选择的列数,而不是单列或整行。例如,如果我的表如下所示:

ID     Address    State    Name
-------------------------------
0      7 Brown    NY       John
1      3 Red      WX       Jane
2      7 Brown    WX       Ted
3      7 Brown    NY       Fred

我的问题是:

查找行的地址和状态字段与另一行的地址和状态字段匹配的行的所有 ID。

这个查询的答案是:

ID    Address    State    Name
------------------------------
0     7 Brown    NY       John
3     7 Brown    NY       Fred

有任何想法吗?

建议: 如何从单个表中选择多个列值相同的行

4

2 回答 2

53

尝试以下操作:

SELECT A.*
FROM YourTable A
INNER JOIN (SELECT Address, State
            FROM YourTable
            GROUP BY Address, State
            HAVING COUNT(*) > 1) B
ON A.Address = B.Address AND A.State = B.State
于 2012-06-15T18:30:52.977 回答
4
select *
from #table1
where Addr + St in (select Addr + St as FullAddr
             from #table1
             group by Addr + St
             having count(Addr+St) > 1)
于 2012-06-15T18:41:57.707 回答