我正在尝试做类似的事情:
WITH megalodon_view AS (
-- 200 lines of gibberish
)
WITH RECURSIVE traverse_table AS (
-- big queries with multiple uses of megalodon_view for recursive traversing
)
观察它不是定义2个CTE,而是在另一个CTE范围内使用。
我想在制作中使用它,所以我希望不要在物理上创造任何东西
答案 0 :(得分:1)
您可以将其指定为:
WITH recursive megalodon_view AS (
-- 200 lines of gibberish
),
traverse_table AS (
-- big queries with multiple uses of megalodon_view for recursive traversing
)
select . . .;
对于第一个CTE,只需要with recursive
一次(即使那个CTE不是递归的)。
答案 1 :(得分:0)
如果没有确切的查询,很难说你想要实现什么。无论如何,你可以像WITH
那样嵌套:
WITH RECURSIVE t(n) AS (
SELECT *
FROM (WITH cte AS (SELECT 1 )
SELECT * FROM cte
) sub
UNION ALL
SELECT n+1 FROM t WHERE n < 100
)
SELECT COUNT(*) FROM t;
<强> DBFiddle Demo 强>