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类型,去掉也可以正常执行,只是保险起见加起。

原文地址:https://www.cnblogs.com/hebiao/p/13476213.html