2014-01-07 37 views
0

我需要執行更新查詢,其中我根據計數查詢的結果設置值。如果計數不返回任何結果,我想將狀態設置爲1,否則我想將狀態設置爲2使用條件表達式更新設置語句

這是我嘗試不工作:

UPDATE TABLE_1 SET status = ((select count(1) from TABLE_2) > 0 ? 1 : 2) 

而且,我m在mybatis xml文件中做這件事,所以如果我在mybatis中可以做一些魔術,那也可以。

+0

想要設置table_1中的每一行與table_2具有相同(已解碼)的計數嗎?或者你也想加入這些表格? (從table_2得到count where some_id = table_1.some_id) – tbone

回答

2

Hope DECODE幫助你!但是狀態中的所有行都使用相同的值更新..你想要那樣嗎?

UPDATE TABLE_1 SET status = (select DECODE(count(1),0,2,1) from TABLE_2); 
+0

不錯的一個。 +1使用'DECODE'。幾乎忘了這個存在' - ) – Mureinik

+0

謝謝,工作完美 –