【发布时间】:2013-01-27 16:32:34
【问题描述】:
我有一个包含用户名和已删除状态的表。重复的用户名已删除状态组合是可能的。如果一个用户名有多个条目的已删除状态为 1,那么我需要将每个用户名的一个条目的已删除状态更新为 0。
考虑以下数据:
Name EmpId Deleted
--------------------
A 01 1
A 01 1
B 02 1
B 02 0
C 03 1
要求:名称 A 和 C 的一项应更新为 0(已删除状态)。
declare @testTable table (Name varchar(10), EmpId varchar(10), Deleted tinyint)
insert into @testTable
select 'A', '01', 1 UNION ALL
select 'A', '01', 1 UNION ALL
select 'B', '02', 1 UNION ALL
select 'B', '02', 0 UNION ALL
select 'C', '03', 1
select * from @testTable
【问题讨论】:
-
你自己尝试过什么吗?
-
我无法为此编写更新,因此我为每个状态不为 0 的用户名插入了一个新条目。
-
您写道:“多个条目的已删除状态为 1”,然后您写道:“要求:名称 A 和 C 的一个条目应更新为 0(已删除状态)。”为什么要删除C?在您的示例中,我们只有一个名称为“C”的条目
-
@RomanBadiornyi:我发现了同样的问题,自相矛盾。我在下面回答仅更新重复项。
-
使用此表中的 UNIQUE ID 列,您的生活会轻松很多。
标签: sql sql-server sql-server-2005 sql-update