You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle CONNECT BY层级查询返回顶层父项但子项字段为空

问题:层级查询中子部件字段返回空值

我编写了一条从已知子部件出发的Oracle CONNECT BY层级查询,用于返回顶层父部件。该查询执行速度快且整体可用,但子部件字段(CHILD_ID、CHILD_PART)返回空值。

原查询语句如下:

WITH
c AS(
SELECT
    d.C_ID,
    d.PART_ID
    FROM T_MASTER_DAT d
    WHERE
    d.C_ID = 1124609156
)
SELECT DISTINCT
c.C_ID CHILD_ID,
c.PART_ID CHILD_PART,
s.C_ID_1 TOP_PARENT_ID,
d2.PART_ID TOP_PARENT_PART,
d2.CUR_FLAG TOP_PARENT_CUR_FLAG,
d2.CANCEL TOP_PARENT_CANCEL,
d2.UNIT,
d2.OPP_BR_UNIT
FROM T_MASTER_STR s
LEFT JOIN c on c.C_ID = s.C_ID_2
JOIN T_MASTER_DAT d2 on d2.C_ID = s.C_ID_1
WHERE
d2.OPP_BR_UNIT is not null and
d2.CUR_FLAG = 'y' and
d2.CANCEL = 'n'
CONNECT BY PRIOR s.C_ID_1 = s.C_ID_2
START WITH s.C_ID_2 = c.C_ID

实际环境中CTE表c由多表连接生成,核心是获取指定C_ID以查询父项。T_MASTER_DAT存储部件的ID、名称、版本、状态等信息,T_MASTER_STR是连接父子部件/装配件的结构表。

内容的提问来源于stack exchange,提问作者Nick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 20:23:12