Исходный код вики Рекурсивный запрос

Версия 2.11 от Alexandr Fokin на 2022/01/03 14:54

Скрыть последних авторов
Alexandr Fokin 1.1 1 {{code language="sql"}}
Alexandr Fokin 2.8 2 WITH RECURSIVE tree (nm, id, level, pathstr)
3 AS
Alexandr Fokin 1.1 4 (
5 --Первый элемент в выборке. Начало рекурсии
Alexandr Fokin 2.8 6 SELECT
7 nm,
8 id,
9 0,
10 cast('' as text)
11 FROM tree_sample
12 WHERE id_parent is null
Alexandr Fokin 1.1 13
Alexandr Fokin 2.8 14 UNION ALL
Alexandr Fokin 1.1 15
16 --Каждый последующий элемент рекурсии
Alexandr Fokin 2.8 17 SELECT
18 tree_sample.nm,
19 tree_sample.id,
20 t.level + 1,
21 tree.pathstr + tree_sample.nm
22 FROM tree_sample
23 INNER JOIN tree
Alexandr Fokin 1.1 24 on tree.id = tree_sample.id_parent
25 )
26
Alexandr Fokin 2.8 27 SELECT
28 id,
29 space(level) + nm as nm
30 FROM tree
31 ORDER BY pathstr
Alexandr Fokin 1.1 32 {{/code}}
Alexandr Fokin 2.1 33
34
Alexandr Fokin 2.8 35 Рекурсивные SQL запросы
Alexandr Fokin 2.1 36 https://habr.com/ru/post/27439/