我想根据SQLite中的递归查询结果创建一个新的(持久性)表。例如,让我们创建一个具有(n, fct)
列的表,其中n
表示自然数,fct
表示其阶乘:
-- factorial of n = 0, 1, ..., 5
WITH RECURSIVE fact_i (n, fct) AS (
VALUES (0, 1)
UNION ALL
SELECT n+1, fct * (n+1) FROM fact_i
WHERE n < 5)
SELECT * FROM fact_i;
导致]
0|1 1|1 2|2 3|6 4|24 5|120
但是,我想将结果存储在持久性表中,例如
factorials
。
我尝试过
CREATE TABLE factorials (n, fct) AS WITH RECURSIVE fact_i (n, fct) AS ( VALUES (0, 1) UNION ALL SELECT n+1, fct * (n+1) FROM fact_i WHERE n < 5) SELECT * FROM fact_i;
或
WITH RECURSIVE fact_i (n, fct) AS ( VALUES (0, 1) UNION ALL SELECT n+1, fct * (n+1) FROM fact_i WHERE n < 5) CREATE TABLE factorials (n, fct) AS SELECT * FROM fact_i;
但是都导致语法错误。有没有办法在SQLite中创建这样的表?
我想根据SQLite中的递归查询结果创建一个新的(持久性)表。例如,让我们创建一个具有(n,fct)列的表,其中n表示自然数,fct其阶乘:...
是,有可能(用附加的SELECT * FROM ()
包装: