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

Редактировал(а) Alexandr Fokin 2023/12/16 14:12

От версии 2.6
отредактировано Alexandr Fokin
на 2021/10/25 11:24
Изменить комментарий: Update document after refactoring.
К версии 2.8
отредактировано Alexandr Fokin
на 2022/01/03 14:43
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Родительский документ
... ... @@ -1,1 +1,1 @@
1 -Разработка.Базы данных.SQL.MSSQL.SQL запросы.WebHome
1 +xwiki:Разработка.Базы данных.SQL.SQL запросы.WebHome
Содержимое
... ... @@ -1,31 +1,36 @@
1 1  {{code language="sql"}}
2 -
3 -with recursive tree (nm, id, level, pathstr)
4 -as
2 +WITH RECURSIVE tree (nm, id, level, pathstr)
3 +AS
5 5  (
6 6   --Первый элемент в выборке. Начало рекурсии
7 - select
8 - nm, id, 0, cast('' as text)
9 - from tree_sample
10 - where id_parent is null
6 + SELECT
7 + nm,
8 + id,
9 + 0,
10 + cast('' as text)
11 + FROM tree_sample
12 + WHERE id_parent is null
11 11  
12 - union all
14 + UNION ALL
13 13  
14 14   --Каждый последующий элемент рекурсии
15 - select
16 - tree_sample.nm, tree_sample.id, t.level + 1, tree.pathstr + tree_sample.nm
17 - from tree_sample
18 - inner join tree
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
19 19   on tree.id = tree_sample.id_parent
20 20  )
21 21  
22 - select
23 - id, space( level ) + nm as nm
24 - from tree
25 - order by pathstr
26 -
27 +SELECT
28 + id,
29 + space(level) + nm as nm
30 +FROM tree
31 +ORDER BY pathstr
27 27  {{/code}}
28 28  
29 29  
35 +Рекурсивные SQL запросы
30 30  https://habr.com/ru/post/27439/
31 -