如果表为空,则根据时间选择行,或者选择所有行



我有2个表。一个是生产表,另一个是日报表。每日报表每天清空。每日报表是生产表的子集。我想用生产表中的所有新行更新日表。我想使用where子句;

SELECT ftime, 
       fdate, 
       fdata, 
       fdata2 
INTO   table2 
FROM   table1 
WHERE  ftime > table2.ftime 
我运气不太好。我是新的SQL,我只是不知道如何去做这个,似乎不能找到任何在网上这个特定的问题。

当我让它工作时,它最终会进入一个存储过程。

SELECT ftime, 
       fdate, 
       fdata, 
       fdata2 
INTO   table2 
FROM   table1 
WHERE  ftime > (select MAX(ftime) from table2)
   OR  NOT EXISTS (select * FROM table2);

如果table2是空的(例如,如果您刚刚完成了每日清理),所有的table1将被拉入table2。
否则,它只会插入表1中ftime比表2中存在的记录晚的新记录。

确保在table2.ftime上有一个索引

相关内容

最新更新