如何获取列的最后一个值

时间:2012-07-12 19:21:15

标签: java sql ms-access ms-access-2007

如何检索数据库中最后输入的列值(MS ACCESS 2007)

我使用了以下代码

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

但它在MS ACCESS中不起作用,当我运行程序时,Error生成为

java.sql.SQLException: Column not found

但我在数据库中创建了一个RegNumber

我正在使用Java进行编程,我使用了这个查询

编辑:

RegNumber是字符串形式,不是整数形式,所以我不能使用DESC或ASC

请帮帮我

4 个答案:

答案 0 :(得分: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();

答案 1 :(得分:1)

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

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

SELECT RegNumber
FROM Death 
ORDER BY id DESC

答案 2 :(得分:1)

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

通常情况下,表会有一些唯一标识符,如果您确定它始终,那么为了数据库,您可以使用函数MAX来检索标识符,然后检索整行。

另一个场景只是一个描述创建列的时间的时间戳列,如果id不足够,这种方法是否真的很重要。

答案 3 :(得分:1)

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

SELECT RegNumber FROM Death ORDER BY RegNumber DESC