使用不同的值更新多行2列(db2 sql)
我有一个表,需要在其中更改多行中两列的值 包含要更改的值的表如下所示: 我尝试过的包含更新值的代码是:使用不同的值更新多行2列(db2 sql),db2,Db2,我有一个表,需要在其中更改多行中两列的值 包含要更改的值的表如下所示: 我尝试过的包含更新值的代码是: UPDATE <table_name> SET (IDENTIFIER_1, IDENTIFIER_2) VALUES (1635, 1755), (2024, 2199), (1868, 1692), (3577, 4825) WHERE ID IN ('1', '23',
UPDATE <table_name>
SET (IDENTIFIER_1, IDENTIFIER_2)
VALUES (1635, 1755),
(2024, 2199),
(1868, 1692),
(3577, 4825)
WHERE ID
IN ('1',
'23',
'54',
'21');
更新
集合(标识符_1、标识符_2)
价值观(16351755),
(2024, 2199),
(1868, 1692),
(3577, 4825)
何处ID
在('1'中,
'23',
'54',
'21');
老实说,我不确定DB2SQL是否支持这一点。错误是:
- [错误代码:-104,SQL状态:42601]DB2SQL错误:SQLCODE=-104,SQLSTATE=42601,SQLERRMC=update*
我还应该建议我是一名db2新手。您可以随时使用Merge
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
您始终可以使用“合并”
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
最后,我将查询拆分为单独的更新集语句,用于每个要更改的值。这肯定不是一个推荐的解决方案,但只有4张唱片对我有效。修改后的代码是:
更新集(标识符1,标识符2)=(16351755),其中ID=1
。。。并对其他3条记录重复相同的操作。您的“更新值”始终是“原始值”+1-这是规则吗?这些信息将有助于解决您的问题。不,我只是碰巧在测试中将所有值增加了1。更改的值可能不是增量1。感谢您检查Michael。我最终将查询拆分为单独的更新集语句,用于每个要更改的值。这肯定不是一个推荐的解决方案,但只有4张唱片对我有效。修改后的代码是:更新集(标识符1,标识符2)=(16351755),其中ID=1
。。。并对其他3条记录重复相同的操作。您的“更新值”始终是“原始值”+1-这是规则吗?这些信息将有助于解决您的问题。不,我只是碰巧在测试中将所有值增加了1。更改的值可能不是增量1。谢谢查看Michael。谢谢您的回复!如前所述,我是一名db2 sql新手,因此此信息对我很有帮助。@Randy任何时候,如果你得到了你想要的东西,请接受并结束这个问题:)完成,并表示歉意。显然,我也是Stackoverflow协议的新手。:-)谢谢你的回复!如前所述,我是一名db2 sql新手,因此此信息对我很有帮助。@Randy任何时候,如果你得到了你想要的东西,请接受并结束这个问题:)完成,并表示歉意。显然,我也是Stackoverflow协议的新手。:-)