我有一张表,我需要在其中更改多行中几列的值。
包含要更改的值的表格如下:
我尝试过的包含更新值但未成功的代码是:
UPDATE <table_name>
SET (IDENTIFIER_1, IDENTIFIER_2)
VALUES (1635, 1755),
(2024, 2199),
(1868, 1692),
(3577, 4825)
WHERE ID
IN ('1',
'23',
'54',
'21');
老实说,我不确定db2 SQL是否支持这种方式。错误是:
- [错误代码:-104,SQL状态:42601] DB2 SQL错误:SQLCODE = -104,SQLSTATE = 42601,SQLERRMC = update *
我还应该建议我是db2新手。
答案 0 :(得分:4)
您始终可以使用合并
MERGE INTO TABLE1
USING (
VALUES (1,1635, 1755),
(23,2024, 2199),
(54,1868, 1692) ) dummytable(ID_T, INF1,INF2)
on table1.id_table = dummytable.id_t
when matched
then UPDATE set TABLE1.IDENTIFIER_1 = dummytable.INF1
, TABLE1.IDENTIFIER_2 = dummytable.INF2
else ignore