2017-01-14 4 views
1

私はこのテーブルを持っている:SQL Serverを使用して、列に重複する値を持つ行を特定するにはどうすればよいですか?

CREATE TABLE [dbo].[Phrase] 
(
    [PhraseId] UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL, 
    [English] NVARCHAR(250) NOT NULL, 
    [Romaji] NVARCHAR(MAX) NULL 
) 

は私がEnglish列に一意のインデックスを追加しようとしましたが、重複があるとして、それは失敗します。どちらが重複しているかはどのようにして知ることができますか?

答えて

0

ネストされたクエリは、2またはそれ以上の行にあるEnglishの値を見つけます。外部クエリは、ネストされたクエリの値がEnglishの行を返します。

おそらくPhraseIdを取得し、group by Englishに重複値を取得する場合は、PhraseIdが失われるため、ネストされたクエリが必要です。

select * 
from Phrase 
where English in 
    (select English 
    from Phrase 
    group by English 
    having count(*) > 1) 
order by English 
0
;With dupes 
as 
(select *,row_number() over (partition by english order by (select null)) as rownum 
from table) 
select * from cte where rownum>1 
+1

は、私はあなたの答えの周りにいくつかのより多くのコンテキストを追加喜ばせるために要求することができます。コードのみの回答は理解しにくいです。あなたの投稿にさらに情報を追加することができれば、これはAskerと将来の読者に役立ちます。 – RBT

関連する問題