我有一个从SQLite数据库填充的列表视图。我有几个项目成功填入listview,但是我最后遇到了麻烦。
我正在尝试将列KEY_CONTENT6
的总和排队,这是一个字符串类型,但它只包含数字。我想把它保存为字符串,所以要添加它我正在使用Double.valueOf()
。问题是这个代码强制在队列上关闭,我无法弄清楚什么是错的:
public Cursor queueAll(){
String[] columns =
new String[]{KEY_ID, "sum("+ Double.valueOf(KEY_CONTENT6) +")",
KEY_CONTENT9, KEY_CONTENT10 };
Cursor cursor = sqLiteDatabase.query(MYDATABASE_TABLE, columns,
null , null, KEY_CONTENT10, null, KEY_CONTENT9+ " DESC");
return cursor;
}
答案 0 :(得分:3)
只需使用SUM,无需使用其他任何东西..
String[] columns =
new String[]{KEY_ID, "sum(KEY_CONTENT6)",
KEY_CONTENT9, KEY_CONTENT10 };
对SQLite有效。因为,无论您在SQLite中设置数据类型,它都将值存储为字符串。因此,类型转换在SQLite中有点内置。
答案 1 :(得分:1)
你不能在SQL语句中使用java,要么坚持使用strait sql,要么迭代光标并使用java来进行计算。
找到有关sqlite的所有信息答案 2 :(得分:0)
SQLite基本上没有类型,因此您可以在列上使用SUM
,即使它是一个字符串。但是,如果它是一个数字列,为什么不给它一个数字类型??