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

时间:2017-06-13 15:25:16

标签: db2

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

包含要更改的值的表格如下:

table structure

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

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新手。

1 个答案:

答案 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