我需要在查询的 WHERE 条件中实现一个 CASE。我写了以下代码:
QueryBuilder<Cars, String> carsQB = carsDao.queryBuilder();
carsQB.selectColumns("id");
carsQB.join(modelsDao.queryBuilder());
carsQB.where().raw("CASE WHEN future = true THEN date > ? ELSE endDate > ? END",
new SelectArg("date"), new SelectArg("endDate"));
但我收到以下错误:
E/AndroidRuntime(4599): Caused by: java.lang.IllegalArgumentException:
Either the column name or SqlType must be set on each argument
date 和 endDate 都是我数据库中的 Date 列。
我错过了什么?有没有更好的方法来实现这一点?谢谢!