【发布时间】:2017-06-14 03:58:05
【问题描述】:
我有一个表,我需要在其中更改多行中几列的值。
要更改值的表如下:
我尝试包含更新值但没有成功的代码是:
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 新手。
【问题讨论】:
-
我最终将查询拆分为单独的 UPDATE SET 语句,用于每个要更改的值。这绝对不是推荐的解决方案,但它只对我有用的 4 条记录。修改后的代码为:
UPDATE <table_name> SET (IDENTIFIER_1, IDENTIFIER_2) = (1635, 1755) WHERE ID = 1... 对其他 3 条记录重复同样的操作。 -
您的“更新值”一直是“原始值”+ 1 - 这是一个规则吗?此类信息将有助于解决您的问题。
-
不,我只是碰巧在我的测试中将所有值都增加了 1。更改的值可能不是增量 1。感谢您检查 Michael。
标签: db2