oracle中使用start with 递归查询遇到数据重复的问题
原因表中既有active=‘Y’的数据 也有active=‘N’的数据
那么在with的时候必须加上那么在with的时候必须加上 AND T.ACTIVE = 'Y'
否则会出现重复数据,具体代码见下面,注意红色的标记
//如果有active为N的数据 可能重复
(CODE = '310000-1' AND T.ACTIVE = 'Y')
SELECT *
FROM BSE.T_BAS_DISTRICT T
WHERE ACTIVE = 'Y'
START WITH (CODE = '310000-1'
AND T.ACTIVE = 'Y')
CONNECT BY NOCYCLE PRIOR T.PARENT_DISTRICT_CODE = T.CODE
ORDER BY T.CODE;