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