我尝试在房间查询中使用窗口函数。解析器提示我的查询。我只是尝试在我的选择语句中添加一个“ROW_NUMBER() OVER (ORDER BY column)”表达式。如果没有此表达式,查询将正确运行。
解析器错误:
extraneous input '(' expecting {<EOF>, ';', ',', K_ALTER, K_ANALYZE,
K_ATTACH, K_BEGIN, K_COMMIT, K_CREATE, K_DELETE, K_DETACH, K_DROP,
K_END, K_EXCEPT, K_EXPLAIN, K_FROM, K_GROUP, K_INSERT, K_INTERSECT,
K_LIMIT, K_ORDER, K_PRAGMA, K_REINDEX, K_RELEASE, K_REPLACE,
K_ROLLBACK, K_SAVEPOINT, K_SELECT, K_UNION, K_UPDATE, K_VACUUM,
K_VALUES, K_WHERE, K_WITH, UNEXPECTED_CHAR}
mismatched input ')' expecting {<EOF>, ';', ',', '=', '*', '+', '-',
'||', '/', '%', '<<', '>>', '&', '|', '<', '<=', '>', '>=', '==', '!=',
'<>', K_ALTER, K_ANALYZE, K_AND, K_ASC, K_ATTACH, K_BEGIN, K_BETWEEN,
K_COLLATE, K_COMMIT, K_CREATE, K_DELETE, K_DESC, K_DETACH, K_DROP,
K_END, K_EXPLAIN, K_GLOB, K_IN, K_INSERT, K_IS, K_ISNULL, K_LIKE,
K_LIMIT, K_MATCH, K_NOT, K_NOTNULL, K_OR, K_PRAGMA, K_REGEXP,
K_REINDEX, K_RELEASE, K_REPLACE, K_ROLLBACK, K_SAVEPOINT, K_SELECT,
K_UPDATE, K_VACUUM, K_VALUES, K_WITH, UNEXPECTED_CHAR}
extraneous input ')' 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_LIMIT, 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 'add_permutation'
expecting {<EOF>, ';', ',', '=', '*', '+', '-', '||', '/', '%', '<<',
'>>', '&', '|', '<', '<=', '>', '>=', '==', '!=', '<>', K_ALTER,
K_ANALYZE, K_AND, K_ASC, K_ATTACH, K_BEGIN, K_BETWEEN, K_COLLATE,
K_COMMIT, K_CREATE, K_DELETE, K_DESC, K_DETACH, K_DROP, K_END,
K_EXPLAIN, K_GLOB, K_IN, K_INSERT, K_IS, K_ISNULL, K_LIKE, K_LIMIT,
K_MATCH, K_NOT, K_NOTNULL, K_OR, K_PRAGMA, K_REGEXP, K_REINDEX,
K_RELEASE, K_REPLACE, K_ROLLBACK, K_SAVEPOINT, K_SELECT, K_UPDATE,
K_VACUUM, K_VALUES, K_WITH, UNEXPECTED_CHAR}
最佳答案
Android Room 将不会使用包含需要 SQLite 3.25.0 或更高版本的 Windows 函数的 SQLite 版本,根据:-
Window function support was added to SQLite with release version 3.25.0 (2018-09-15). The SQLite developers used the PostgreSQL window function documentation as their primary reference for how window functions ought to behave. Many test cases have been run against PostgreSQL to ensure that window functions operate the same way in both SQLite and PostgreSQL. Window Functions
最新的 Android API 28 似乎使用 3.19,因为它未在 android.database.sqlite 中列出。 , 因此它将使用与 API 27 相同的内容。
因此,SQLite 将未知子句视为语法错误。
关于安卓房间+窗口功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55067466/