Java SQLITE有条件更新…那么情况如何?
提前谢谢。 我正在尝试用另一个表的日期更新一个表。我的理解是正确的,但是现在我只想在原始表中的4个条件为真时更新每一行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
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。