使用
更新重复的列值假设我有一个包含跟随列的表 ID,Code,IsDuplicate,Description
我有n条记录,如果里面有重复的代码,我想批量更新IsDuplicate值。 实施例
1 ABC null null
2 DEF null null
3 DEF null null
4 ABC null null
5 FGH null null

ID 1,2,3,4 IsDuplicate将更新为true。
怎么可能呢?
答案 0 :(得分:3)
这将更新所有重复的代码:
UPDATE T
SET ISDUPLICATE = 'TRUE'
FROM YOURTABLE T
WHERE EXISTS (SELECT 1
FROM (SELECT *
FROM (SELECT ROW_NUMBER()
OVER (
PARTITION BY CODE
ORDER BY ID)RN,
*
FROM YOURTABLE)A
WHERE RN > 1)B
WHERE B.CODE = T.CODE)
答案 1 :(得分:0)
您应该在选择查询中使用分组。
SELECT code, COUNT(*) c FROM table GROUP BY code HAVING c > 1;
然后您可以根据您的要求进行更新。