update 更新某個字段自動加1


語句:update BIZ_VOUCHER_TOTAL_INFO set
GRANTRECEDEF_NUM=to_number(GRANTRECEDEF_NUM)+1 where
TERMINAL_ID='3401010X' and BATCH_NO='1921' and CARDBOX_NO='box4_1' and MED_TYPE='4' and BATCH_STATE='0'

update 表名 set 列=列+1 where 條件;

可能出現的問題,如果GRANTRECEDEF_NUM這個字段在表中沒有數據,則這條語句失效。

需要先給它填一個非null數值一般0,然后才能生效。

修改后:

update BIZ_VOUCHER_TOTAL_INFO set
GRANTRECEDEF_NUM=nvl(GRANTRECEDEF_NUM,0)+1 where
TERMINAL_ID='3401010X' and BATCH_NO='1921' and CARDBOX_NO='box4_1' and MED_TYPE='4' and BATCH_STATE='0'

當表里沒數據時,我們給它+1沒有辦法,,所以先需要做一個判斷,是否為null

通過nvl(ex1,ex2),如果ex1為null,則返回ex2的值,如果ex1不為null,則返回ex1的值。先給null賦值為0,再加1,這樣就可以了

to_number這里也可以不要,轉換字符串為number類型,去掉也可以正常執行,只是保險起見加起。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM