2012-01-19 4 views
4

こんにちは、私は最後の顧客IDを取得する必要があるjavaプロジェクト、すなわちMax(c_id)に取り組んでいます。しかし、私のデータベースでc_idはテキスト(varchar)の形式になっていますので、どうすれば最大値を取得できますか?が見つかりました。max for varchar

Connection conn; 
    Statement st; 
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    conn=DriverManager.getConnection("jdbc:odbc:rrr"); 
    st=conn.createStatement(); 

String query[] ={"SELECT Max(cid) FROM client"}; 
    for(String q : query){ 
    ResultSet rs = st.executeQuery(q);   
    while (rs.next()) { 
     String name = rs.getString("cid"); 
     Text1.setText(name); 
+3

どのデータベース(MySQL、Oracle、MSSQLなど)ですか? –

+0

あなたのc_id番号はvarcharにあると思いますか? – Kushan

+0

最後の==最大IDは本当ですか? –

答えて

0

次に確認してください:

select * from client order by cid desc limit 1,1;

+0

これをアップしてください – vijikumar

3

select max(convert(integer, c_id))またはselect max(cast(c_id as integer))

+0

... mysqlを使用しています... –

+0

@Fahim mysqlの構文が少し違っているようですが、クイック検索にhttp ://dev.mysql.com/doc/refman/5.0/en/charset-convert.html有用かもしれない –

+0

上記のコードはどこで動作しますか?あなたの答えを更新してください... –

1

チェックこれを動作するはずです、

SELECT max(convert(c_id, signed)) FROM client 

SELECT max(cast(c_id AS signed)) FROM client 

あなたはMS Accessの上にキャストしCINT機能を確認することができ、MySQLでこれを試して

0

このクエリを使用します。

select max(convert(cid、DECIMAL))from client;

+0

あなたが助けてくれてありがとう、 –

+0

mysqlを使用している場合。 count(*)文でうまくいきました。 –

3

使用

select max(c_id::integer) from tbluser ; 

あなたは、PostgreSQLデータベースに

0

を使用している場合は、次のクエリを使用してください。

select * from c_id desc limit 1,1;

+0

は機能しません。 –

0

MySQLの

SELECT Max(cast(cid as signed)) FROM client 

オラクル

SELECT Max(to_number(cid)) FROM client 

MSSQL

SELECT Max(CONVERT(int, cid)) FROM client 
+0

MySQLは最初に値を入力しました... –

+0

msアクセスを使用しています –

関連する問題