我有一个我无法解决的问题:(
我执行此sql语句以获取CCID-String的最大值:
"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。
有人有任何想法吗?
抱歉我的英语不太完美;)
谢谢你。
答案 0 :(得分:1)
也许您可以查看db2 substring
函数:http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.db2z9.doc.sqlref%2Fsrc%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"
答案 1 :(得分:0)
使用PreparedStatement而不是Statement,eaiser和有效的方式来处理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);