Firebird使用其他表的条件更新字段

时间:2016-03-10 02:28:16

标签: sql sql-update firebird firebird2.5

我在Firebird中有两个表,其中包含以下字段:

TABLEA: KEY, ITEM, LAST_SALE_DATE 

TABLEB: KEY, ROT

两者都与关键相关。它们使用关键字段引用相同的项目。

我想更新TABLEB.ROT='A' where TABLEA.LAST_SALE_DATE>01/01/2016

我无法确定如何发表声明,请帮助。

1 个答案:

答案 0 :(得分:3)

有几种方法可以做到这一点。首先,您可以通过对TABLEB进行存在检查来关联TABLEA update TABLEB b set b.ROT = 'A' where exists ( select 1 from TABLEA a where a.KEY = b.KEY and a.LAST_SALE_DATE > DATE '2016-01-01')

merge into TABLEB b
  using TABLEA a
    on a.KEY = b.KEY and a.LAST_SALE_DATE > DATE '2016-01-01' 
  when matched then
    update set b.ROT = 'A'

另一种方法是使用update

public class MySwitch : Switch
{
}