【发布时间】:2018-04-22 16:01:21
【问题描述】:
我正在尝试使用 Teradata 多次执行递归 我的查询类似于以下内容,在从 query_2 引用 query_1 并尝试运行它时会出现错误,提示 query_1 不存在。
WITH RECURSIVE query_1 AS ( --some recursive query ) ,RECURSIVE query_2 AS ( --another recursive query based on results from query_1 ) SELECT * FROM query_2
我想连接来自不同层次结构的值 所以我想转
------------------------------------
trx indx1 indx2 val
------------------------------------
x1 1 1 a
x1 1 2 b
x1 1 3 c
x1 2 1 d
...................................
-----------------------------------
进入以下
----------------
trx val
----------------
x1 a/b/c/d
【问题讨论】:
-
你不能有嵌套的递归查询(我无法想象你为什么需要它)。
-
我想连接多个层次的层次
-
不确定 Terada,但对于标准 SQL,
recursive关键字只能在WITH关键字之后指定一次,无论哪个 CTE 是递归的.您是否尝试删除第二个RECURSIVE关键字? -
您可以使用 XMLAGG 连接:stackoverflow.com/a/29549409/2527905 或者您在执行层次结构查询时进行连接。
-
XMLAGG 已经为我完成了!但是 ORDER BY 仅支持一列,因此我必须在子查询中连接每个级别
标签: sql teradata recursive-query