Java SQLITE有条件更新…那么情况如何?

Java SQLITE有条件更新…那么情况如何?,java,sql,sqlite,sql-update,case,Java,Sql,Sqlite,Sql Update,Case,提前谢谢。 我正在尝试用另一个表的日期更新一个表。我的理解是正确的,但是现在我只想在原始表中的4个条件为真时更新每一行 UPDATE newtable SET Serial = CASE WHEN( (SELECT ETI FROM oldtable) != 0.0) AND ((SELECT Serial FROM oldtable) != 0000) AND ((SELECT Hardware FROM oldtable) != 0000) AND ((SELECT Softw

提前谢谢。 我正在尝试用另一个表的日期更新一个表。我的理解是正确的,但是现在我只想在原始表中的4个条件为真时更新每一行

UPDATE newtable SET Serial = CASE WHEN(
 (SELECT ETI FROM oldtable) != 0.0) 
 AND ((SELECT Serial FROM oldtable) != 0000) 
 AND ((SELECT Hardware FROM oldtable) != 0000) 
 AND ((SELECT Software FROM oldtable) != 0000)
THEN (SELECT Serial FROM oldtable  WHERE newtable.IDENT= oldtable.IDENT)END,

这将更新所有行,因此这4个条件不起作用


谢谢您的时间。

我认为您可以通过相关子查询来实现这一点,如下所示:

update newtable
set serial = (
    select serial 
    from oldtable
    where ident = newtable.ident and serial <> 0 and hardware <> 0 and software <> 0 and eti <> 0
)
where exists (
    select serial 
    from oldtable
    where ident = newtable.ident and serial <> 0 and hardware <> 0 and software <> 0 and eti <> 0
)

目前还不清楚串行、硬件、软件等列的数据类型。我假设它们是数字,因为它们看起来像数字。您可能需要根据您的具体用例对其进行调整。

样本数据和期望的结果将非常有用。0000应该代表什么?数字只需要是0。