使用新值更新timestamp列 - oracle中现有列的值

时间:2014-09-29 06:56:22

标签: sql oracle

我有一个表让我们说测试有三列objid,col1(Timestamp)和col2(Number)。我想用(新值 - col2的值)更新col1。

我可以使用以下查询来更新单行 -

update test set col1 = TO_TIMESTAMP('"+newDate+" 00.00.00.000000000','DD-MM-YYYY HH24: MI:SS:FF') - (select col2 from test where objid = 1) where objid = 1;

但是我在使用IN传递objid来更新多行时遇到问题。

update test set col1 = TO_TIMESTAMP('"+newDate+" 00.00.00.000000000','DD-MM-YYYY HH24: MI:SS:FF') - (select col2 from test where objid IN (1,2)) where objid IN (1,2);

我没有得到任何完成任务的线索。

请帮忙。

提前致谢。

1 个答案:

答案 0 :(得分:1)

由于两列都属于同一个表,因此您可以像这样编写查询:

update test 
   set col1 = TO_TIMESTAMP('"+newDate+" 00.00.00.000000000','DD-MM-YYYY HH24: MI:SS:FF') - col2
 where objid IN (1,2);