【发布时间】:2017-11-09 11:37:41
【问题描述】:
我有一张这样的桌子:
CREATE TABLE #my_table (
intID int IDENTITY (1, 1),
num_1 varchar(100) NOT NULL,
num_2 varchar(100) NOT NULL,
num_3 varchar(100) NOT NULL,
num_4 varchar(100),
num_5 varchar(100),
isDuplicate char(1) DEFAULT 'N'
)
INSERT INTO #my_table (num_1, num_2, num_3, num_4, num_5)
VALUES ('a', 'b', 'c', 'd', 'e')
INSERT INTO #my_table (num_1, num_2, num_3, num_4, num_5)
VALUES ('a', 'b', 'c', 'd', 'e')
INSERT INTO #my_table (num_1, num_2, num_3, num_4, num_5)
VALUES ('a', 'b', 'c', 'd', 'e')
INSERT INTO #my_table (num_1, num_2, num_3, num_4, num_5)
VALUES ('a', 'b', 'a', 'd', 'e')
INSERT INTO #my_table (num_1, num_2, num_3, num_4, num_5)
VALUES ('a', 'b', 'a', 'd', 'e')
INSERT INTO #my_table (num_1, num_2, num_3, num_4, num_5)
VALUES ('a', 'b', 'c', 'd', 'c')
我需要在列中查找重复项并获取重复的行号。
我的结果应该是 重复行最后 3 行且重复标志应更新为 'Y'
【问题讨论】:
-
你试过什么代码?
-
select * from ( select num_1, num_2, num_3, num_4, num_5 ,row_number() over (partition by num_1, num_2, num_3, num_4, num_5 order by intid desc) as rn from #my_table ) as dt where rn > 1 :但这会更新不应该的第 2 行和第 3 行
-
请显示您想要的结果。您指定了两个不同的东西(查找重复项,将标志设置为
'Y')。 -
请删除您的评论并点击“编辑”按钮将其添加到您的问题中。
标签: sql sql-server-2016