【发布时间】:2016-02-14 18:58:39
【问题描述】:
我有条件地想要orderBy 我的查询。所有已完成的任务(已完成 1)应低于未完成并按完成时间排序,未完成的任务应按优先级值排序。我得到以下声明:
orderBy = TaskTable.COLUMN_TASK_COMPLETED + " ASC, CASE " +TaskTable.COLUMN_TASK_COMPLETED+" WHEN 0 THEN " +TaskTable.COLUMN_TASK_PRIORITY +" WHEN 1 THEN "+TaskTable.COLUMN_TASK_COMPLETED_TIME + " END DESC";
现在,我想更改它,这样优先级使用ASC 属性排序,completed_time 使用DESC 属性排序。
我试过了:
orderBy = TaskTable.COLUMN_TASK_COMPLETED + " ASC, CASE " +TaskTable.COLUMN_TASK_COMPLETED+" WHEN 0 THEN " +TaskTable.COLUMN_TASK_PRIORITY +" ASK WHEN 1 THEN "+TaskTable.COLUMN_TASK_COMPLETED_TIME + " DESC END";
但它返回错误:
原因:android.database.sqlite.SQLiteException:靠近“ASC”:语法错误(代码 1):,编译时:SELECT * FROM task_table WHERE (task_name LIKE ?) ORDER BY task_completed ASC, CASE task_completed WHEN 0 THEN task_priority ASC WHEN 1 THEN task_completed_time DESC END
如何解决?
【问题讨论】:
标签: sqlite sql-order-by