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