根据第二个表中的条件更新表

时间:2018-03-01 02:06:56

标签: db2 sql-update

我正在尝试根据另一个表中的选择条件更新一个表。我的SQL是

update
  hshed
set
  oaeiin = 'Y',
  OAEIND = '170201'
from
  hshed
  join cusms on oacono = cmcono
  and oacsno = cmcsno
where
  cmtpid like 'OB10%'
  and oainvd > 180120
  and oaeiin = 'N'

但是,我收到错误

 Keyword FROM not expected. Valid tokens: USE SKIP WAIT WITH WHERE. 

我不确定如何根据第二个表中的条件更新表,或者如何使用连接。这是在DB2数据库中使用SQL。

我尝试过寻找没有成功的解决方案。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我认为这里的主要问题是DB2不支持您正在使用的更新连接语法。一种可能的解决方法可能是使用EXISTS子句来处理您想要的相同逻辑:

UPDATE
    hshed
SET
    oaeiin = 'Y',
    OAEIND = '170201'
WHERE
    EXISTS (SELECT 1 FROM cusms WHERE oacono = cmcono) AND
    EXISTS (SELECT 1 FROM cusms WHERE oacsno = cmcsno) AND
    cmtpid LIKE 'OB10%' AND
    oainvd > 180120 AND
    oaeiin = 'N';

Here is a link一般性的Stack Overflow问题讨论这个问题。