使用另一个表中重复的值更新 Oracle 表中的列

安德森

我正在尝试将表 A 中的列 (REPT_IND) 更新为表 B 中的值,其中 A.ID = B.ID 和表 B 中的某些条件。表 B 中有一些重复项,但 REPT_IND 是相同的并且我仍然需要价值。我怎样才能在 Oracle 上做到这一点?任何提示表示赞赏谢谢!

以下代码有错误:

ORA-01427: single-row subquery returns more than one row

代码:

UPDATE A
SET REPT_IND= (
                        SELECT B.REPT_IND
                        FROM  B
                        INNER JOIN A
                            ON B.ID = A.ID
                        where A.ID = B.ID
                        and B.job_type = 'P'
                        and B.FT_PT is not null
                        );
萨扬·马拉克希诺夫

您也可以尝试merge声明:

merge into a 
using (
    select a.id,max(b.rept_ind) rept_ind
    from  a left join b on a.id=b.id
    where b.job_type = 'p'
      and b.ft_pt is not null
) b
on (a.id=b.id)
when matched then update 
    set a.rept_ind=b.rept_ind;

或者,如果 b 中没有相关行,您不想将 a.rept_ind 设置为 null:

merge into a 
using (
    select b.id, max(b.rept_ind) rept_ind
    from  b
    where 
            b.job_type = 'p'
        and b.ft_pt is not null
    group by b.id
) b
on (a.id=b.id)
when matched then update 
    set a.rept_ind=b.rept_ind;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用另一个表中的值更新特定列

Oracle SQL:使用另一个表中的数据更新表

如果id在另一个表中,则使用值更新MySQL更新列

选择每个组的第一条记录并使用Oracle中另一个表中的值更新它

如何在Oracle中多次更新与另一个表联接的表?

oracle proc通过dblink使用另一个表更新一个表

如何使用另一个表中的数据更新Python中的Oracle表

如何使用另一个表中的值更新数据库表

根据另一个表中的列在表中插入记录(在Oracle SQL Developer中)

使用SAS中另一个表中的数据更新oracle表

如何命名与Oracle中另一个表的列的记录相同的列

Oracle更新了一个表,以将数据输入到另一个表中

使用来自另一个表的值更新PHP MYSQL中的表

如何从csv文件/ Oracle中的另一个表更新大表

使用MySQL中的rand()将表中的值更新到另一个表

一个表中的SQL更新值与Oracle SQL Developer中的另一个表的值匹配

使用具有特定条件的另一个表中的值更新Oracle中的表

使用另一个表中的值更新ms-access表中的值

如何根据不同的条件使用另一个表中的值更新表

oracle使用来自另一个表的列值更新前4个字符

根据另一个表中的值更新表中的列

使用另一个表的列中的值更新表的列

如何使用另一个数据库表中的值更新表

根据另一个表的值更新 Oracle 中表中的值

将一个表中的列追加到 Oracle 中的另一个表

使用另一个表的值更新表

使用另一个表中的值更新一个表上的列

根据另一个表oracle sql中的值动态更新多行

如何使用另一个表中的值更新 PostgreSQL 上的多个列