Вопрос
Пример таблицы
+-------------+----------------------+--------+
| category_id | name | parent |
+-------------+----------------------+--------+
| 1 | ELECTRONICS | NULL |
| 2 | TELEVISIONS | 1 |
| 3 | TUBE | 2 |
| 4 | LCD | 2 |
| 5 | PLASMA | 2 |
| 6 | PORTABLE ELECTRONICS | 1 |
| 7 | MP3 PLAYERS | 6 |
| 8 | FLASH | 7 |
| 9 | CD PLAYERS | 6 |
| 10 | 2 WAY RADIOS | 6 |
+-------------+----------------------+--------+
Учитывая приведенный выше пример таблицы, я думаю, что в Oracle я должен быть в состоянии написать SQL по строкам "SELECT ... CONNECT BY", чтобы найти уровень данного идентификатора. Например, «MP3-плееры» имеют УРОВЕНЬ 3.
Пример заимствован из Управление иерархическими данными в MySQL
Решение
SELECT MAX(level) "LEVEL"
FROM TEST_TABLE
START WITH category_id = 7 -- MP3 Players category_id
CONNECT BY category_id = PRIOR parent
ORDER BY LEVEL DESC