2016-03-06 69 views
-1

我已经组合了包含红色或不包含红色的列表。我想按如下方式对结果进行排序 -android sqlite排序/ ORDER BY查询

如果颜色不是红色,则按字母顺序显示结果。 (继续列表)--->如果颜色是红色,则按字母顺序显示元素的其余部分。

我期待以下结果:

//如果颜色不是红色然后显示结果按字母顺序

橙A(颜色不是红色&按字母顺序)

蓝B(颜色不红色&字母顺序)

白色C(颜色不是红色&按字母顺序)

黑d(颜色不是红色&按字母顺序)

//(在列表中的继续)--->如果颜色是红色,然后显示元件的其余部分按字母顺序

红色A(颜色是红&字母顺序)

红B(颜色是红色&字母顺序)

红C(颜色是红色&字母顺序)

要做到这一点,我想下面的查询:

public Loader<Cursor> onCreateLoader(int id, Bundle args) { 
    switch (id) { 

     case SORT_BY_ALPHABETICALLY: 

      String orderAlphabetically = BY_NAME + " ASC, " 
       + BY_COLOR + " ASC"; 

      return new CursorLoader(ctx, 
        URI, 
        null, 
        null, 
        null, 
        orderAlphabetically); 

,但上面的查询是不是给预期的结果。

+0

试试这个:http://stackoverflow.com/questions/20686415/how-to -sort-the-cursorloader-results –

+1

请您提供一些示例表数据和预期的输出结果吗? – Wanderer

回答

0

您想先按红色排序,然后按名称排序。

SQLite中,布尔表达式返回0或1,所以这正是你想要的排序:

SELECT ... ORDER BY Color = 'red' ASC, Name ASC;