Sql 如何在db2中只更新匹配的列
我正在尝试执行如下更新查询:Sql 如何在db2中只更新匹配的列,sql,database,db2,sql-update,Sql,Database,Db2,Sql Update,我正在尝试执行如下更新查询: update semester_workload tA set tA.working = (SELECT DEPUTAT_WS11 from TD_DOZENTEN t1 where t1.Pruefernummer = tA.ID_Lecturer AND tA.ACADEMIC_SEMESTER = 'WS11') 但是db2会自动更新整个列,而不是只更新与“where”语句匹配的数据 如何使其仅更新所需的数据?一种方法是将逻辑放在中,其中: update s
update semester_workload tA
set tA.working = (SELECT DEPUTAT_WS11 from TD_DOZENTEN t1 where t1.Pruefernummer = tA.ID_Lecturer AND tA.ACADEMIC_SEMESTER = 'WS11')
但是db2会自动更新整个列,而不是只更新与“where”语句匹配的数据
如何使其仅更新所需的数据?一种方法是将逻辑放在
中,其中:
update semester_workload tA
set tA.working = (select DEPUTAT_WS11
from TD_DOZENTEN t1
where t1.Pruefernummer = tA.ID_Lecturer AND tA.ACADEMIC_SEMESTER = 'WS11')
where exists (select 1
from TD_DOZENTEN t1
where t1.Pruefernummer = tA.ID_Lecturer AND tA.ACADEMIC_SEMESTER = 'WS11'
);
我认为DB2在更新中既不支持JOIN
也不支持FROM
一种方法是将逻辑放在中,其中
:
update semester_workload tA
set tA.working = (select DEPUTAT_WS11
from TD_DOZENTEN t1
where t1.Pruefernummer = tA.ID_Lecturer AND tA.ACADEMIC_SEMESTER = 'WS11')
where exists (select 1
from TD_DOZENTEN t1
where t1.Pruefernummer = tA.ID_Lecturer AND tA.ACADEMIC_SEMESTER = 'WS11'
);
我认为DB2既不支持JOIN
也不支持FROM
在更新中您可以做到这一点
UPDATE semester_workload t0
SET t0.working =
(
SELECT t1.DEPUTAT_WS11 FROM TD_DOZENTEN t1
WHERE t1.Pruefernummer = t0.ID_Lecturer
)
where t0.ACADEMIC_SEMESTER = 'WS11' and exists
(
SELECT * FROM TD_DOZENTEN t1
WHERE t1.Pruefernummer = t0.ID_Lecturer
)
你能做到
UPDATE semester_workload t0
SET t0.working =
(
SELECT t1.DEPUTAT_WS11 FROM TD_DOZENTEN t1
WHERE t1.Pruefernummer = t0.ID_Lecturer
)
where t0.ACADEMIC_SEMESTER = 'WS11' and exists
(
SELECT * FROM TD_DOZENTEN t1
WHERE t1.Pruefernummer = t0.ID_Lecturer
)
是的,成功了,谢谢!我会尽快核实是否有必要将“和tA.ACADEMIC_Semmer='WS11'”加入子选择;)是的,成功了,谢谢!我会尽快核实是否有必要将“和tA.ACADEMIC_Semmer='WS11'”加入子选择;)