【发布时间】:2017-10-07 11:25:56
【问题描述】:
考虑 Oracle 文档https://docs.oracle.com/cd/B19306_01/server.102/b14200/queries003.htm中的以下查询
SELECT employee_id, last_name, manager_id
FROM employees
CONNECT BY PRIOR employee_id = manager_id;
EMPLOYEE_ID LAST_NAME MANAGER_ID
101 Kochhar 100
108 Greenberg 101
109 Faviet 108
110 Chen 108
111 Sciarra 108
112 Urman 108
113 Popp 108
200 Whalen 101
我想过滤这棵树以获取姓氏中只有字母“a”的员工。 我可以使用 WHERE 子句,但问题是我不想只获得符合条件的行,而且如果他们不这样做,我也不想获得他们的父母事件,即我不想破坏一棵树。根据文档,Oracle 单独评估每一行的条件。例如,如果我使用 WHERE 子句,我会得到 id 为 101、109、111、112、200 的行。但我想得到 101、108、109、111、112、200。 如何过滤树而不破坏它?
【问题讨论】:
标签: sql database oracle hierarchical-data