![](/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.