Oracle 在创建物化视图时限制在 select 子句中使用子查询。当您这样做时,您会收到错误“ORA-22818:此处不允许子查询表达式”。
由于这个限制,我一直在努力重写查询并将子查询移出 select 子句。该查询使用父/子关系递归地构建路径,我还试图通过将表连接回自身并查看记录是否有子项来指示特定类别是否为叶类别。
SELECT A.PRODUCTCATEGORYID, A.PARENTCATEGORYID, SYS_CONNECT_BY_PATH(A.LABEL, ':') "PATH",
(
SELECT CASE WHEN MAX(PRODUCTCATEGORYID) IS NOT NULL THEN 0 ELSE 1 END
FROM PRODUCT_CATEGORY
WHERE parentcategoryid = A.PRODUCTCATEGORYID
) as "LEAF"
FROM PRODUCT_CATEGORY A
CONNECT BY PRIOR A.PRODUCTCATEGORYID = A.PARENTCATEGORYID
START WITH A.PARENTCATEGORYID IS NULL;
谁能指出我应该如何重写它以使子查询不是 select 子句的一部分的正确方向?
提前致谢。