为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM Database Server 64 V8
【操作系统】:
【CPU】:
【问题描述】*:
为啥这个查询会报错:
WITH RECURSIVE cte_count(n) AS (
SELECT 1 AS n -- 初始查询,起点为1
UNION ALL
SELECT n + 1 FROM cte_count -- 递归部分,引用自身cte_count
WHERE n < 5 -- 递归终止条件
)
SELECT * FROM cte_count;
-2007: 第 1 行, 第 37 列[cte_count]附近出现错误:
语法分析出错
SQL> WITH RECURSIVE cte_count(n) AS (
SELECT 1 AS n -- 初始查询,起点为1
UNION ALL
SELECT n + 1 FROM cte_count -- 递归部分,引用自身cte_count
WHERE n < 5 -- 递归终止条件
)
SELECT * FROM cte_count;2 3 4 5 6 7
LINEID N
1 1
2 2
3 3
4 4
5 5
used time: 3.163(ms). Execute id is 1001.
SQL> WITH cte_count(n) AS (
SELECT 1 AS n -- 初始查询,起点为1
UNION ALL
SELECT n + 1 FROM cte_count -- 递归部分,引用自身cte_count
WHERE n < 5 -- 递归终止条件
)
SELECT * FROM cte_count;2 3 4 5 6 7
LINEID N
1 1
2 2
3 3
4 4
5 5
used time: 2.748(ms). Execute id is 1002.
可以将RECURSIVE去掉,效果是一样的