如何为自引用表创建一个简单的Select?

Ser*_*pia 5 sql oracle select hierarchical-data

例如,我有这个表:

CREATE TABLE perarea
  (
     id_area      INT primary key,
     nombre       VARCHAR2(200),
     id_areapadre INT references perarea(id_area)
  );
Run Code Online (Sandbox Code Playgroud)

而不是显示:

1 IT null
2 Recursos Humanos null
3 Contabilidad 2
4 Legal 2
Run Code Online (Sandbox Code Playgroud)

我想要:

1 IT 
2 Recursos Humanos 
3 Contabilidad Recursos Humanos
4 Legal Recursos Humanos
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

我不能为我的生活弄清楚这个选择会是怎样的.

编辑:

此SQL查询有效,但不会提取NAME,只会提取父级的ID.有帮助吗?

select * from PerArea
connect by id_area = id_areapadre;
Run Code Online (Sandbox Code Playgroud)

Jus*_*n K 6

作为参考,您也可以使用自联接来执行此操作而无需分层扩展:

SELECT p1.id_area, p1.name, COALESCE(p2.name, '')
FROM perarea p1
     LEFT JOIN perarea p2 ON (p1.id_areapadre = p2.id_area)
Run Code Online (Sandbox Code Playgroud)