Postgresql ltree: как получить вершины (все записи без родителей)?

| id | name   | path  |
|----|--------|-------|
| 1  | один   | 1     |
| 2  | два    | 1.2   |
| 3  | три    | 1.2.3 |
| 4  | четыре | 4     |


Как получить записи яляющиеся вершинами
| id | name   | path  |
|----|--------|-------|
| 1  | один   | 1     |
| 4  | четыре | 4     |


Postgresql14 c ltree

Вариант с select * from my_table where id = path
не подходит так у записей может изменяться path
  • Вопрос задан
  • 75 просмотров
Решения вопроса 2
iMedved2009
@iMedved2009
Не люблю людей
select * from my_table where POSITION('.' in path) = 0;
Ответ написан
Melkij
@Melkij
PostgreSQL DBA
Обратите внимание, "получить записи яляющиеся вершинами" и "все записи без родителей" - это разные задачи.

where nlevel(ltree) = 1 -- все записи состоящие из одного уровня.


Записи без родителей - это когда у вас есть ltree "Top.Science.Space.Astronomy", но нет записи "Top.Science.Space"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы