【发布时间】:2015-04-20 22:32:45
【问题描述】:
我想为所有不同的记录更新具有不同值的多行,但不知道该怎么做,我正在使用下面的 sql 来更新单个记录,但我有 200 多个记录要更新
update employee
set staff_no = 'ab123'
where depno = 1
我有 50 个部门,在这些部门中,我需要更新 200 多个员工编号。任何想法。 目前,如果我只是做一个
select * from Departments
我可以看到所有不需要更新员工的员工列表。
UPDATE person
SET staff_no =
CASE person_no
WHEN 112 THEN 'ab123'
WHEN 223 THEN 'ab324'
WHEN 2343 THEN 'asb324'
and so on.....
END
【问题讨论】:
-
例如 if depno =1 set staffno = ab123 ...... if depno = 2 set staffno =ab321
-
你是说你需要更新 200 条不同值的记录吗?有没有办法计算这些值?
-
我有大约 150 个 person_id 看起来都不同,我需要根据这些 person_id 更新 staff_no,所以简而言之 150 个 person_no 和 150 个 staff_no
-
如果下面的答案不满足,请创建一个带有一些示例 DDL 和日期的 sqlfiddle。
-
@srk786 不要惊慌。即使没有可以让您熟悉该技术的测试数据库,在您
COMMIT之前,您的产品数据库中也不会发生任何变化 - 首先尝试 2 个小部门,检查结果,发出ROLLBACK。