讓一個字段值末尾依次增長加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     }

 

 

    當然不一定是三位的  也可以以此類推往后增加 看需求。方法應該有很多種,想到了這一種就記錄了下來。

 


免責聲明!

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



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