【发布时间】:2023-03-23 09:33:02
【问题描述】:
我必须在列值中包含父/子关系的 db2 表上编写递归。这是一个糟糕的设计,但不幸的是我无法控制它。这是来自 SalesForce 的数据转储。
转储表中的每条记录代表一个级别的产品代码分组。从顶层 Industrial、AG、OIL 等开始,每个组都有带有组代码的子组,直到到达包含实际产品代码的底层。 给定产品代码 (STCC_RECORD_ID),我需要检索最高父级的 GROUP_CODE。我被卡住了,任何见解将不胜感激。这是我最新版本的 SQL:
WITH X(ID,STCC_RECORD_ID,PARENT_ID,GROUP_CODE,SEG_NAME) AS
(
SELECT P.ID,P.STCC_RECORD_ID,P.PARENT_ID,P.GROUP_CODE,P.SEG_NAME
FROM HB_EXTRACT.SEGMENTATION P
WHERE STCC_RECORD_ID='0113211'
UNION ALL
SELECT ID,STCC_RECORD_ID,PARENT_ID,GROUP_CODE,SEG_NAME
FROM x
WHERE x.PARENT_ID = ID
)
SELECT * FROM X
【问题讨论】:
标签: sql recursion db2 common-table-expression