第一个数字只下降

时间:2013-02-20 15:37:42

标签: android sql database

我无法想象为什么我的分数没有下降。这是仅排序的第一个数字。帮我们分析一下这段代码并告诉我什么是错的答案。

   public String getData() {    
   Cursor c= ourDatabase.query(DATABASE_TABLE, new String[] {KEY_NAME, KEY_SCORE},  
null, null, null, null, KEY_SCORE +" DESC");
   String result = "";


int iname = c.getColumnIndex(KEY_NAME);
int iscore = c.getColumnIndex(KEY_SCORE);

for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){
    result = result +  c.getString(iname) + "    "+   c.getInt(iscore)+ "\n";

 }

 return result;

 }

1 个答案:

答案 0 :(得分:1)

问题可能是KEY_SCORE被存储为字符串而不是数字。

解决这个问题的方法不止一种。将得分转换为整数或浮点数:

cast(Key_Score as float) desc

或者,如果它是一个没有前导0的整数,则以下技巧有效:

len(Key_Score) desc, key_score desc

但是,在某些数据库中,len()函数可能拼写为length()或其他内容。