Sql server 如何在具有相同两列的表中列出重复行?
我有这张桌子:Sql server 如何在具有相同两列的表中列出重复行?,sql-server,Sql Server,我有这张桌子: CREATE TABLE [dbo].[Phrase] ( [PhraseId] UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL, [English] NVARCHAR (250) NOT NULL, [Kanji] NVARCHAR (250) NULL, PRIMARY KEY CLUSTERED ([Phras
CREATE TABLE [dbo].[Phrase] (
[PhraseId] UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL,
[English] NVARCHAR (250) NOT NULL,
[Kanji] NVARCHAR (250) NULL,
PRIMARY KEY CLUSTERED ([PhraseId] ASC) );
我想做的是得到一个用于检测重复行的所有重复行(带有英语和汉字)列的列表
换句话说,如果有这样的行:
English Kanji
aa bb
aa cc
aa bb
aa dd
aa ee
aa dd
我想得到一份报告
aa bb
aa dd
试试这个:
select English,Kanji from Phrase
group by English,Kanji
having count(*)>1
使用Row_Number()我们可以做到这一点
;WITH CTE(English,Kanji)
as
(
select 'aa','bb' UNION ALL
select 'aa','cc' UNION ALL
select 'aa','bb' UNION ALL
select 'aa','dd' UNION ALL
select 'aa','ee' UNION ALL
select 'aa','dd'
)
SELECT English
,Kanji
FROM (
SELECT *
,ROW_NUMBER() OVER (
PARTITION BY English
,Kanji ORDER BY English
,Kanji
) AS Seq
FROM CTE
) dt
WHERE dt.Seq <> 1
这个问题可能重复的问题已经回答了很多次。你也已经问过了:
English Kanji
-------------
aa bb
aa dd