select substr(SYS_CONNECT_BY_PATH(project_name,'>'),2) from A
start with A.parent_project_id is null
connect by prior A.project_id =A.parent_project_id
函数SYS_CONNECT_BY_PATH的作用是:利用一个特殊的符号把有等级关系的字段连接成一个树机构,
如 上面的pl_sql语句用符号 “>”连接
start with关键字是限制根节点的条件(就是什么样的字段可以作为根节点),
A.parent_project_id is null 代表没有参照的外键的字段可以作为树的跟节点,也就是开始(应用一下,观察一下结果)
如:中国 就没有参照的外键可作为根节点,河北的外键参照中国,则河北就不能作为根节点
connect by 后面是主外键关系(一般为一个表的内连接)
如上面的查询结果可能是:
中国
中国>河北
中国>河北>石家庄
中国>山西
.........