用不同的值更新 2 列的多行(db2 sql)

Ran*_*ndy 1 db2

我有一个表,我需要在其中更改多行中几列的值。

要更改值的表如下所示:

表结构

我尝试包含更新值但没有成功的代码是:

UPDATE <table_name>
SET (IDENTIFIER_1, IDENTIFIER_2) 
VALUES (1635, 1755),
       (2024, 2199),
       (1868, 1692),
       (3577, 4825)
WHERE ID 
        IN ('1', 
            '23', 
            '54', 
            '21');
Run Code Online (Sandbox Code Playgroud)

老实说,我不确定 db2 SQL 是否支持这一点。错误是:

  • [错误代码:-104,SQL 状态:42601] DB2 SQL 错误:SQLCODE=-104,SQLSTATE=42601,SQLERRMC=update *

我还应该建议我是 db2 新手。

uSe*_*her 5

您可以随时使用合并

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  
Run Code Online (Sandbox Code Playgroud)