簡體   English   中英

如何修改SQL語句?

[英]How to modify SQL-Statement?

我有一個我無法解決的問題:(

我執行以下sql語句以獲取CCID字符串的最大值:

                "select MAX(CCID) as test123 from "
                        + tabelleName+ " where CCID like 'W%'");

之后,我想增加字符串。 我將W子字符串化並將字符串轉換為int:

                String ccid = rs.getString("test123");
                String test = ccid.substring(1,6);
                int id = Integer.parseInt(test);
                int newid = id+1;

目前,max(ccid)看起來像W01352。 newid的結果是“ 1353”,而沒有“ W0”。

我想要一個類似W01353的字符串,可以將其添加到db2-數據庫中以獲取下一個W-Number。

有人有什么主意嗎?

對不起,我的英語不太好;)

感謝你。

也許您可以看一下db2 substring函數: http : //publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=% 2Fcom.ibm.db2z9.doc.sqlref% substring 2Ftpc %2Fdb2z_bif_substring.htm

您可以嘗試select substring(MAX(CCID), 2, x) as test123 from ..

其中x是您想要的類型: CODEUNITS16CODEUNITS32 ,..

這應該返回不帶W0的值

編輯

要將前導零添加到新整數,請執行以下操作:

String old = "W01234";
String sub = old.substring(1); // "01234"
Integer id = Integer.parse(sub); //1234
Integer newI = id + 1; // 1235
String newS = "W" + ("00000" + newI).substring(newI.toString().length()); // "W01235"

使用PreparedStatement而不是Statement,更輕松有效的方法來處理SQL查詢。

String sql = "select MAX(CCID) as test123 from <tabelleName> where CCID like '?%'");
PreparedStatement preparedStatement = dbConnection.prepareStatement(sql);
preparedStatement.setString(1, "...");
ResultSet rs = preparedStatement.executeQuery(sql);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM