我有组合列表,其中包含红色或不包含红色。我想按如下方式对结果进行排序 -
如果颜色不是红色,则按字母顺序显示结果。 (继续列表)--->如果颜色为红色,则按字母顺序显示元素的其余部分。
我期待以下结果:
//如果颜色不是红色,则按字母顺序显示结果
橙色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 :(得分:0)
您希望先按红色排序,然后按名称排序。
在SQLite中,布尔表达式返回0或1,因此这正是您想要排序的内容:
SELECT ... ORDER BY Color = 'red' ASC, Name ASC;