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

我不知道 中的last()功能MS ACCESS,但我有另一个想法:

通常id每个 都有一个自动生成的table,因此您可以对其进行排序并从结果集中获取第一条记录,如下所示:

SELECT RegNumber
FROM Death 
ORDER BY id DESC
于 2012-07-12T19:34:14.123 回答
1

这取决于您的数据库结构。

通常,表带有一些唯一标识符,如果您确定它总是为了数据库,您可以使用函数MAX来检索标识符,然后检索整行。

另一种情况是用于描述列创建时间的时间戳列,如果序列真的很重要,如果不是id足够的话,这种方法可以满足要求。

于 2012-07-12T19:39:09.287 回答
1

以下将返回最后一个和最新的 RegNumber :

SELECT RegNumber FROM Death ORDER BY RegNumber DESC
于 2012-07-13T05:20:41.330 回答