专家, 我想从列MyColumn获取值,其中列Judge为true,列DateTime最接近当前时间。怎么解决这个问题?感谢。
我开发类似下面的代码似乎工作。但是,当表格仅包含行时,Judge =' false' ,(因为我的其中一个条件是Judge =' true')我得到了:
cursor.moveToFirst()==真
cursor.getCount()== 1
因此将0.0分配给myColumn而不是999999。
String dateTime="CURRENT_DATE_TIME";
double myColumn;
Cursor cursor = db.rawQuery("select MyColumn, " +
"min(strftime('%s', '" + dateTime + "') - strftime('%s', DateTime)) " +
"from trade1 " +
"where Judge = 'true' " +
"and date(DateTime) <= date('" + dateTime + "')", null);
cursor.moveToFirst();
myColumn = cursor.getDouble(0);
if (cursor.getCount()==0) myColumn = 999999;
cursor.close();
答案 0 :(得分:0)
当您使用MIN()之类的聚合函数而不使用GROUP BY时,您将获得所有行的结果,即使没有。
只需添加GROUP BY Judge
。
(在检查有效行之前,您不能尝试从光标读取。)