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

私の質問は次のとおりです。

行の Address および State フィールドが別の行の Address および State フィールドと一致する行のすべての 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 に答える