我正在尝试使用H2创建递归查询,但我似乎无法使其工作。
我试图开始工作的递归查询与this previous question I posed to StackOverflow的答案相似。我正在尝试为JUnit测试创建一个查询,因为H2无法创建真正的存储过程(处理结果集的Java代码不是一个很好的答案,因为它完全跳过了我测试中的大部分代码)。
我已经彻底阅读了H2文档并尝试了一些基本的东西,即使用H2 documentation中的一个示例。我发现当我在控制台中运行时,H2文档中显示的递归查询不起作用:(
我正在使用文档链接中的第二个示例,即:
Intent
任何人都知道为什么这个查询不起作用?似乎如果它在文档中它应该工作;也许是回归错误?我正在使用H2版本1.4.188。
看起来H2不喜欢未指定CTE的值(例如WITH cte1 AS (
SELECT 1 AS FIRST_COLUMN
), cte2 AS (
SELECT FIRST_COLUMN+1 AS FIRST_COLUMN FROM cte1
)
SELECT sum(FIRST_COLUMN) FROM cte2;
),但文档似乎表明它不是必需的。但是,即使我解决了这个问题,它在第一个CTE的右括号之后的逗号上也会失败,这正是我对我正在尝试编写的查询的困扰。