如何从 android sqlite 中的静态值列表 select,值附近的语法错误(
How to select from static list of values in android sqlite, syntax error near values(
我正在尝试创建一个静态时间戳列表,以便我可以再次加入它们 table 以创建图表数据。到目前为止,我有一个这种格式的查询 SELECT * FROM (VALUES('a'),('b'),('c'),('d')) AS tbl
,它在 sqlitestudio 中工作但在 android 4.4 中不工作。当我 运行 phone 中的查询时,我收到错误
android.database.sqlite.SQLiteException: near "VALUES": syntax error (code 1): , while compiling: SELECT * ...
我也试过将值术语包装在另一个 select 中,就像这样 SELECT * FROM (SELECT * FROM (VALUES('a'),('b'),('c'),('d'))) AS tbl
但我仍然遇到同样的错误。
完整的查询现在看起来像这样
SELECT * FROM (select * from ( VALUES (1458111312025),
(1455667200000),
(1455753600000),
(1455840000000),
(1455926400000),
(1456012800000),
(1456099200000),
(1456185600000),
(1456272000000),
(1456358400000),
(1456444800000),
(1456531200000),
(1456617600000),
(1456704000000),
(1456790400000),
(1456876800000),
(1456963200000),
(1457049600000),
(1457136000000),
(1457222400000),
(1457308800000),
(1457395200000),
(1457481600000),
(1457568000000),
(1457654400000),
(1457740800000),
(1457827200000),
(1457913600000),
(1458000000000),
(1458086400000))) i LEFT JOIN (
SELECT (osysdate- (osysdate % 86400000) ) interval, SUM(field004) totalval FROM onlineactivities WHERE field003 !=300000 and osysdate> 1455605711999 GROUP BY interval )
onl ON i.'' = onl.interval;;
请注意,这在 sqlite 版本 3.8.10 的 sqlitestudio 中有效,但在 android kitkat 中无效(不确定其中的 sqlite 版本)可能是什么问题?
另请查看此question which is what I am trying to do but with sqlite and this answer
从 SQLite 3.8.3 开始可以使用 VALUES 语法,is not available in every Android version。
要与早期的 SQLite 版本兼容,您必须使用复合查询:
SELECT 1458111312025 UNION ALL
SELECT 1455667200000 UNION ALL
...
或者,将所有值放入临时 table。
我正在尝试创建一个静态时间戳列表,以便我可以再次加入它们 table 以创建图表数据。到目前为止,我有一个这种格式的查询 SELECT * FROM (VALUES('a'),('b'),('c'),('d')) AS tbl
,它在 sqlitestudio 中工作但在 android 4.4 中不工作。当我 运行 phone 中的查询时,我收到错误
android.database.sqlite.SQLiteException: near "VALUES": syntax error (code 1): , while compiling: SELECT * ...
我也试过将值术语包装在另一个 select 中,就像这样 SELECT * FROM (SELECT * FROM (VALUES('a'),('b'),('c'),('d'))) AS tbl
但我仍然遇到同样的错误。
完整的查询现在看起来像这样
SELECT * FROM (select * from ( VALUES (1458111312025),
(1455667200000),
(1455753600000),
(1455840000000),
(1455926400000),
(1456012800000),
(1456099200000),
(1456185600000),
(1456272000000),
(1456358400000),
(1456444800000),
(1456531200000),
(1456617600000),
(1456704000000),
(1456790400000),
(1456876800000),
(1456963200000),
(1457049600000),
(1457136000000),
(1457222400000),
(1457308800000),
(1457395200000),
(1457481600000),
(1457568000000),
(1457654400000),
(1457740800000),
(1457827200000),
(1457913600000),
(1458000000000),
(1458086400000))) i LEFT JOIN (
SELECT (osysdate- (osysdate % 86400000) ) interval, SUM(field004) totalval FROM onlineactivities WHERE field003 !=300000 and osysdate> 1455605711999 GROUP BY interval )
onl ON i.'' = onl.interval;;
请注意,这在 sqlite 版本 3.8.10 的 sqlitestudio 中有效,但在 android kitkat 中无效(不确定其中的 sqlite 版本)可能是什么问题?
另请查看此question which is what I am trying to do but with sqlite and this answer
从 SQLite 3.8.3 开始可以使用 VALUES 语法,is not available in every Android version。
要与早期的 SQLite 版本兼容,您必须使用复合查询:
SELECT 1458111312025 UNION ALL
SELECT 1455667200000 UNION ALL
...
或者,将所有值放入临时 table。