如何使用另一个表中的另一列来更新一个列? SQL错误:ORA-00933:SQL命令未正确结束 [英] How to UPDATE one column using another column in another table? SQL Error: ORA-00933: SQL command not properly ended

查看:75
本文介绍了如何使用另一个表中的另一列来更新一个列? SQL错误:ORA-00933:SQL命令未正确结束的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经尽力想尽一切办法,但无法解决此SQL错误:

I have tried everything I can think of but couldn't solve this SQL error:

SQL错误:ORA-00933:SQL命令未正确结束

SQL Error: ORA-00933: SQL command not properly ended

这是Oracle SQL.

This is Oracle SQL.

    UPDATE SALES_DATA_FAMILY_2007 A 
    SET A.POG_ID=B.POG_ID 
    FROM POG_HIERARCHY B 
    WHERE A.FAMILY_ID=B.FAMILY ;

我尝试过的一种替代方法如下.不幸的是,它给出了另一个错误: ORA-01427:单行子查询返回多个行

One alternative I have tried is as below. Unfortunately it gives another error: ORA-01427: single-row subquery returns more than one row

    UPDATE SALES_DATA_FAMILY_2007 
    SET POG_ID= (SELECT POG_HIERARCHY.POG_ID FROM POG_HIERARCHY 
    WHERE SALES_DATA_FAMILY_2007.FAMILY_ID=POG_HIERARCHY.FAMILY_ID) 
    WHERE EXISTS (SELECT POG_HIERARCHY.POG_ID FROM POG_HIERARCHY 
    WHERE SALES_DATA_FAMILY_2007.FAMILY_ID=POG_HIERARCHY.FAMILY_ID) 
    ;

请帮助!

推荐答案

如果您要更新子查询中具有多个记录的行,可以使用合并命令:

If you want to update rows from a subquery with more than one record you can use the merge commenad:

merge into SALES_DATA_FAMILY_2007 A
using (select POG_ID , FAMILY
                 FROM POG_HIERARCHY ) B
on (A.FAMILY_ID=B.FAMILY)
when matched then
update set A.POG_ID=B.POG_ID

这篇关于如何使用另一个表中的另一列来更新一个列? SQL错误:ORA-00933:SQL命令未正确结束的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆