【发布时间】:2021-03-28 03:12:37
【问题描述】:
我有两个 SQL 表。一个人从另一个存储模块列表及其 ID 的表中获取参考值。但这些描述并不是唯一的。我正在尝试删除表 A 的重复项,但我不确定如何更新表 B 以仅引用单个值。
例子:
Table A: Table B:
-------------------------------- ------------------------------------
ID Description RefID ID Name
-------------------------------- ------------------------------------
1 Test 1 2 1 QuickReports
-------------------------------- ------------------------------------
2 Test 2 1 2 QuickReports
-------------------------------- ------------------------------------
我希望结果如下:
Table A: Table B:
-------------------------------- ------------------------------------
ID Description RefID ID Name
-------------------------------- ------------------------------------
1 Test 1 1 1 QuickReports
-------------------------------- ------------------------------------
2 Test 2 1
--------------------------------
我设法使用以下代码从表 B 中删除了重复项,但我无法更新表 A 中的记录。每个表都有超过 500 条记录。
WITH cte AS(
SELECT
Name,
ROW_NUMBER() OVER (
PARTITION BY
Name
ORDER BY
Name
)row_num
FROM ReportmodulesTest
)
DELETE FROM cte
WHERE row_num > 1;
【问题讨论】:
标签: sql sql-server duplicates sql-update inner-join