0
public static final String KEY_HIGH 

public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" +
                KEY_HIGH + " INTERGE);"
        );  
    }


public long createEntry(String high) {

    ContentValues cv = new ContentValues();

    cv.put(KEY_HIGH, high);
    return ourDatabase.insert(DATABASE_TABLE, null, cv);
}



String[] columns = new String[]{KEY_HIGH,KEY_NAME};

Cursor c = ourDatabase.query(
                    DATABASE_TABLE, 
                    columns, null, null, null, null, KEY_HIGH + " DESC");

我正在尝试按 column 排序KEY_HIGH,但是,结果是这样的:

4
3
2
10
11
1

如何将它们按数字从高到低排序?

谢谢。

4

3 回答 3

0

来自 Android 文档

公共游标查询(字符串表、字符串 [] 列、字符串选择、字符串 [] 选择参数、字符串 groupBy、字符串具有、字符串 orderBy)

在 API 级别 1 中添加
查询给定的表,返回结果集上的游标。

参数
table 要编译查询的表名。
columns要返回的列的列表。传递 null 将返回所有列,不鼓励这样做以防止从存储中读取不会使用的数据。
selection 一个过滤器,声明要返回哪些行,格式化为 SQL WHERE 子句(不包括 WHERE 本身)。传递 null 将返回给定表的所有行。
selectionArgs 您可以在选择中包含 ?s,它将被 selectionArgs 中的值替换,以便它们出现在选择中。这些值将绑定为字符串。
通过...分组一个过滤器,声明如何对行进行分组,格式化为 SQL GROUP BY 子句(不包括 GROUP BY 本身)。传递 null 将导致行不被分组。
一个过滤器声明哪些行组包含在游标中,如果正在使用行分组,则格式化为 SQL HAVING 子句(不包括 HAVING 本身)。传递 null 将导致包含所有行组,并且在不使用行分组时是必需的。
orderBy如何对行进行排序,格式为 SQL ORDER BY 子句(不包括 ORDER BY 本身)。传递 null 将使用默认排序顺序,可能是无序的。

返回 一个 Cursor 对象,该对象位于第一个条目之前。请注意,游标是不同步的,有关更多详细信息,请参阅文档。
另请参阅光标

请注意,决赛名为orderBy. 您可以在此处指定要对哪一列(或多列)进行排序。另请注意,您不需要包含将在 SQL 语句中使用的“ORDER BY”关键字。

于 2013-06-15T23:49:46.557 回答
0

我遇到了同样的问题。它有一个非常简单的解决方案:

在您的 CREATE_TABLE 语句中执行以下操作:“ INTEGER,”+KEY_HIGH+ //您剩下的东西。

于 2014-02-14T19:29:00.953 回答
-1

最后一个 null 后不需要逗号

Cursor c = ourDatabase.query(
            DATABASE_TABLE, 
            columns, null, null, null, null + " ORDER BY " + KEY_HIGH + " DESC");
于 2013-06-15T23:47:50.880 回答