让一个字段值末尾依次增长加1,SQL查询及逻辑处理。
我遇到的这个问题时,思路没有想好,到最后写到一半了 ,才发现写错了。回家时在电梯里想了一下,顿时来了灵感。
思路:
我根据我做项目的思路来写。首先是我需要让某一个字段值的末尾依次增长加1,并把值给另一个字段(也可以还给自己本身)。那么第一步就是要获取这个字段的值,第二步就是要查询出这个字段本身的最大值,第三步判断查询数据结果值,值如果为零则后面加1,不为零则判断是否大于10,或者是否大于100。
1.获取值:
获取所需要在哪一个值后面增加值。
2.SQL查询语句:
SELECT MAX(TO_NUMBER(SubStr(T.字段名,保留的几位数)+1)) as TASK FROM 表名;
注:所保留的数 可以写为负数 比如-3 列:123456223 结果为:224 结果加1
那么现在查询出来的值是数值类型。接收所查询出来的值 TASK int 类型接收。
3.逻辑判断:
1 String Data=""; 2 3 if(count>0)//查询有数据 4 5 { 7 if(TASK<10)//末尾的结果至是否大于10 9 { 11 if(TASK.ToString()=="0")//如果是0 那么代表第一次增加 后面增加001 否则加上查询的值(因为小于10) 12 13 { 15 Data=获取的值+“001”; 16 17 }else 18 19 { 20 21 Data=获取的值+ "00"+TASK.Tostring(); 23 } 25 } 26 27 else if(TASK>=10&&TASK<99)//代表两位数 十位数上不能再是0 28 29 { 31 Data=获取的值+ "0"+TASK.Tostring(); 33 } 34 35 else if(TASK>=100&&TASK<999)//百位上不能再是0 36 37 { 39 Data=获取的值+TASK.Tostring(); 41 } 42 43 else 44 45 { 46 47 Message="上限最大值是999" 48 49 } 50 51 }
当然不一定是三位的 也可以以此类推往后增加 看需求。方法应该有很多种,想到了这一种就记录了下来。