1

データベースの列に最後に入力された値を取得するにはどうすればよいですか (MS ACCESS 2007)

次のコードを使用しました

String sql = "SELECT Last(RegNumber) FROM Death ";

しかし、MS ACCESSでは機能せず、プログラムを実行するとエラーが次のように生成されます

java.sql.SQLException: Column not found

しかし、データベースに列を作成しましたRegNumber

このクエリを使用したプログラミングにJavaを使用しています

編集:

RegNumber は整数形式ではなく文字列形式であるため、DESC または ASC を使用できません

私を助けてください

4

4 に答える 4

2

任意の基準でテーブルを並べ替えて使用しますSELECT TOP 1 * FROM myTable ORDER BY RegNumber ASC

またはORDER BY incrementingId DESC

基本的に、「最後に入力された列」と呼ばれるものの並べ替えには、論理的な順序が必要です(列ではなく行を意味すると思います)

編集: 関数は Access で正しく、正しい値を返す必要があります。ただし、Java は正しく解釈しない場合があります。Access ネイティブ クエリでクエリを試してから、Java のデバッグを試みます。単に Java がこの関数をサポートしていないというだけの場合は、Java.sql に組み込まれている ResultSet() 関数の使用を検討してください。

ResultSet rs = ....;
rs.last();
int RegNumber = rs.getRow();
于 2012-07-12T19:25:22.440 に答える
1

これはデータベースの構造によって異なります。

通常、テーブルにはいくつかの一意の識別子があります。データベースに登録するために常に来ることが確実な場合は、関数MAXを使用して識別子を取得し、次に行全体を取得できます。

もう1つのシナリオは、列が作成された時刻を表すタイムスタンプ列だけです。このアプローチは、シーケンスが本当に重要であるかどうかを満足させるものですid

于 2012-07-12T19:39:09.287 に答える
1

以下は、最後で最後のRegNumberを返します。

SELECT RegNumber FROM Death ORDER BY RegNumber DESC
于 2012-07-13T05:20:41.330 に答える
1

last()の関数についてはわかりませんがMS ACCESS、別のアイデアがあります。

通常id、各 に対して自動的に生成される があるtableため、それを並べ替えて、次のように結果セットから最初のレコードを取得できます。

SELECT RegNumber
FROM Death 
ORDER BY id DESC
于 2012-07-12T19:34:14.123 に答える