buLK更新重复行值

时间:2015-11-17 04:14:43

标签: sql-server tsql

使用

更新重复的列值

假设我有一个包含跟随列的表 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。

怎么可能呢?

2 个答案:

答案 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;

然后您可以根据您的要求进行更新。

相关问题