2013-02-20 30 views
-1

我想象不到爲什麼我的分數沒有下降。這是僅排序的第一位數字。幫助我們分析這些代碼,並告訴我什麼是錯誤的答案。僅第一位數字降序

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

問題可能是KEY_SCORE被存儲爲字符串而不是數字。

有多種方法可以解決這個問題。投的成績爲整數或浮點數:

cast(Key_Score as float) desc 

或者,如果它是一個整數,沒有前導零,下面的技巧的工作原理:

len(Key_Score) desc, key_score desc 

然而,在某些數據庫中,len()功能可能是拼寫length()或別的東西。

+0

我在哪裏把所有這些代碼先生? – 2013-02-20 16:17:18

+0

@KrisMacapia。 。 。在這個問題上你有標籤「sql」。這是SQL語法,所以你可以把它放在'order by'子句中查詢的地方。可能它會在'KEY_SCORE +「DESC」'所在的位置工作。 – 2013-02-20 16:19:05

+0

你能給我如使用此代碼先生..即時通訊新手 – 2013-02-20 16:20:35