我需要執行更新查詢,其中我根據計數查詢的結果設置值。如果計數不返回任何結果,我想將狀態設置爲1,否則我想將狀態設置爲2使用條件表達式更新設置語句
這是我嘗試不工作:
UPDATE TABLE_1 SET status = ((select count(1) from TABLE_2) > 0 ? 1 : 2)
而且,我m在mybatis xml文件中做這件事,所以如果我在mybatis中可以做一些魔術,那也可以。
我需要執行更新查詢,其中我根據計數查詢的結果設置值。如果計數不返回任何結果,我想將狀態設置爲1,否則我想將狀態設置爲2使用條件表達式更新設置語句
這是我嘗試不工作:
UPDATE TABLE_1 SET status = ((select count(1) from TABLE_2) > 0 ? 1 : 2)
而且,我m在mybatis xml文件中做這件事,所以如果我在mybatis中可以做一些魔術,那也可以。
Hope DECODE幫助你!但是狀態中的所有行都使用相同的值更新..你想要那樣嗎?
UPDATE TABLE_1 SET status = (select DECODE(count(1),0,2,1) from TABLE_2);
不錯的一個。 +1使用'DECODE'。幾乎忘了這個存在' - ) – Mureinik
謝謝,工作完美 –
想要設置table_1中的每一行與table_2具有相同(已解碼)的計數嗎?或者你也想加入這些表格? (從table_2得到count where some_id = table_1.some_id) – tbone