我有一个表让我们说测试有三列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);
我没有得到任何完成任务的线索。
请帮忙。
提前致谢。
答案 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);