2014-09-29 24 views
0

我有一張表讓我們說測試有三列objid,col1(Timestamp)和col2(Number)。我想更新col1(新值 - col2的值)。使用新值更新時間戳列 - oracle中現有列的值

我可以使用下面的查詢更新單行 -

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; 

但我面臨的問題,同時通過傳遞的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

由於兩列屬於同一個表,你可以寫這樣的查詢:

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