【问题标题】:CASE WHEN query in room databaseCASE WHEN 在房间数据库中查询
【发布时间】:2022-09-27 11:24:51
【问题描述】:

**在房间数据库中查询时的情况**

我有三种类型的情况,我想触发三种不同的条件

  1. 案例1:查看日期并返回结果
  2. 案例 2:检查日期和 end_date & neverends=1 返回结果
  3. 案例 3:检查 DATE 并返回结果

    下面是查询

      @Query(
        \"select * FROM `Task` WHERE task_type =(CASE  WHEN ${Constant.REPEAT_TYPE.ONETIME} THEN task_start_date=:todayDate END DESC,\" +
                \"CASE type WHEN ${Constant.REPEAT_TYPE.REPEAT} THEN task_start_date=:todayDate OR task_never_end=1 OR task_end_date >=:todayDate END DESC,\" +
                \"CASE type WHEN ${Constant.REPEAT_TYPE.LOCATION} THEN task_start_date=:todayDate END DESC)\"
    )
    

    错误日志

        error: mismatched input \'DESC\' expecting {\')\', \',\', \'=\', \'*\', \'+\', \'-\', \'||\', \'/\', \'%\', \'<<\', \'>>\', \'&\', \'|\', \'<\', \'<=\', \'>\', \'>=\', \'==\', \'!=\', \'<>\', K_AND, K_BETWEEN, K_COLLATE, K_GLOB, K_IN, K_IS, K_ISNULL, K_LIKE, K_MATCH, K_NOT, K_NOTNULL, K_OR, K_REGEXP}
        public abstract java.util.List<com.example.todolist.database.entity.Task> getTodassyTask(long todayDate);
                                                                                  ^
      extraneous input \'DESC\' expecting {<EOF>, \';\', K_ALTER, K_ANALYZE, K_ATTACH, K_BEGIN, K_COMMIT, K_CREATE, K_DELETE, K_DETACH, K_DROP, K_END, K_EXPLAIN, K_INSERT, K_PRAGMA, K_REINDEX, K_RELEASE, K_REPLACE, K_ROLLBACK, K_SAVEPOINT, K_SELECT, K_UPDATE, K_VACUUM, K_VALUES, K_WITH, UNEXPECTED_CHAR}
      extraneous input \'DESC\' expecting {<EOF>, \';\', K_ALTER, K_ANALYZE, K_ATTACH, K_BEGIN, K_COMMIT, K_CREATE, K_DELETE, K_DETACH, K_DROP, K_END, K_EXPLAIN, K_INSERT, K_PRAGMA, K_REINDEX, K_RELEASE, K_REPLACE, K_ROLLBACK, K_SAVEPOINT, K_SELECT, K_UPDATE, K_VACUUM, K_VALUES, K_WITH, UNEXPECTED_CHAR}
    

标签: android kotlin android-room


【解决方案1】:

DESC 是 DESCENDING 的缩写,它在 ORDER BY 子句中使用。您没有ORDER BY 子句。因此,它说它在 DESC 之前期待一些东西。

如果要调用返回的列 DESC 则将其括在 `` 例如

`DESC`
  • 虽然不是列的最佳名称

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 2014-11-29
    • 2017-08-15
    • 1970-01-01
    相关资源
    最近更新 更多