【问题标题】:Match rows from 2 table and update value of 1 column from 1 table to the other table if the value in the corresponding column is null如果相应列中的值为空,则匹配 2 个表中的行并将 1 个表中的 1 列的值更新到另一个表中
【发布时间】:2019-12-16 18:25:39
【问题描述】:

我有两个表如下:

表 A(包含 1A 列和 2A 列) 表 B(包含 1B 列和 2B 列)

我想编写一个程序来帮助我执行以下操作:

  1. 查找表 A 和表 B 的匹配行,其中 1A = 1B
  2. 之后,对于每个匹配的行,如果 2B 为空,则将其更新为 2A;如果不为空,则不更新。

我是 SQL 和 Oracle 的新手,我将不胜感激。

提前谢谢你

【问题讨论】:

    标签: sql oracle datatable insert procedure


    【解决方案1】:

    试试这个MERGE 声明:

    MERGE INTO TABLE_B B
    USING (SELECT 1A, 2A FROM TABLEA) A
    ON (A.1A = B.1B)
    WHEN MATCHED THEN
    UPDATE 
    SET B.2B = COALESCE(B.2B, A.2A);
    

    干杯!!

    【讨论】:

    • 谢谢!我试过了,实际上对于 USING 它说 ON 丢失了
    • 如果该答案解决了您的问题,请accept它,以便您的问题被标记为已解决。
    【解决方案2】:

    更新表 A 设置 A.2A = ( 选择 2B 从 B 其中 B.1B= A.1A ) 其中 A.2A 为空;

    这对我有用!感谢大家的投入!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-20
      • 1970-01-01
      • 2020-06-23
      • 2019-03-18
      • 2020-05-18
      • 1970-01-01
      相关资源
      最近更新 更多