[英]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
是您想要的類型: CODEUNITS16
, CODEUNITS32
,..
這應該返回不帶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.