![](/img/trans.png)
[英]SAP Hana - SQL - calculate columns on the same table without recursive functions
[英]WITH RECURSIVE Common Table Expressions in SAP HANA
我真的不知道为什么我不能让这个递归 CTE 在 HANA 中工作。 我们在 HANA 2 上,所以据我所知,如果我将它作为 SQLSCRIPT 放在一个过程中,它应该得到支持。 我们不想使用内置的层次结构函数,因为我们试图尽可能不使用专有解决方案。
它无法识别 CTE 的嵌套 (INNER JOIN) 部分。 我已经尝试了所有方法,但它说在我的个人模式中找不到它,这告诉我它正在将其解释为表格。
错误:
[Location_In_Repository] 未找到依赖对象:SqlScript; USERSCHEMA.USER_HIER:未找到符号
BEGIN
WITH USER_HIER AS (
SELECT USER_ID, MANAGER_ID
FROM HR.DIM_USER_V
UNION ALL
SELECT hier.USER_ID, hier.MANAGER_ID
FROM HR.DIM_USER_V hier
INNER JOIN USER_HIER ON USER_HIER.USER_ID = hier.MANAGER_ID)
SELECT *
FROM USER_HIER;
END
最新的 HANA 2 文档明确指出:
<with_clause> 不能支持递归查询表达式。
层次函数是 HANA 的方法。 虽然这些当然是专有的,但递归 SELECT 的大多数实现也是专有的(参见https://www.wikiwand.com/en/Hierarchical_and_recursive_queries_in_SQL )。
我建议将层次结构处理封装到视图或表函数中 - 这样,在移植到不同的 DBMS 时就可以直接交换实现细节。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.