使用CREATE TABLE AS SELECT 在SQLite中创建表时出错,

问题描述 投票:1回答:1

我正在尝试创建一个日期表,该日期表会为特定日期范围生成EOM日期,但是SQLite在创建该表时会引发错误。我当前的代码如下:

WITH RECURSIVE cnt (
        x
) AS (
    SELECT
            0
    UNION ALL
    SELECT
            x + 1
    FROM
            cnt
    LIMIT (
            SELECT
                    ROUND(((julianday ('2020-05-01') - julianday ('2016-04-01')) / 30) + 1))
)

CREATE TABLE report_dates AS
SELECT
  date(date(julianday ('2016-04-01'), '+' || x || ' month'), '-1 day') AS month
FROM
  cnt;

但是,我收到了错误Query 1 ERROR: near "CREATE": syntax error。删除CREATE TABLE report_dates AS行不会使结果没有问题。可能是什么驱动?

sql sqlite select create-table recursive-query
1个回答
1
投票

CTE在create table之后:

CREATE TABLE report_dates AS
WITH RECURSIVE cnt (x) AS (
    SELECT 0
    UNION ALL
    SELECT x + 1
    FROM cnt
    LIMIT (
        SELECT ROUND(((julianday ('2020-05-01') - julianday ('2016-04-01')) / 30) + 1)
    )
)
SELECT date(date(julianday ('2016-04-01'), '+' || x || ' month'), '-1 day') AS month
FROM cnt;
© www.soinside.com 2019 - 2024. All rights reserved.