>
> Тогда запрос выбирающий дерево будет:
> with recursive TREE as (
> select n.ID, n.PARENT_ID, n.TITLE, n.MODIFY, n.ORD_NUM
> from NODES n
> where n.PARENT_ID is null
> union all
> select n.ID, n.PARENT_ID, n.TITLE, n.MODIFY, n.ORD_NUM
> from NODES n
> inner join TREE t on t.ID = n.PARENT_ID
> )
> select t.ID, t.PARENT_ID, t.TITLE, t.MODIFY, t.ORD_NUM
> from TREE t
>
Ага, так и есть, сортировка при UNION ALL идет на фиг.
Но прикладная прокто-стоматология не стоит на месте !
WITH RECURSIVE TREE AS (
SELECT TMP1.ID, TMP1.PARENT_ID, TMP1.TITLE, TMP1.MODIFY,
TMP1.ORD_NUM
FROM (SELECT N1.ID, N1.PARENT_ID, N1.TITLE, N1.MODIFY, N1.ORD_NUM
FROM NODES N1
WHERE (N1.PARENT_ID IS NULL)
ORDER BY N1.TITLE ASCENDING -- СОРТИРОВКА
) TMP1
UNION ALL
SELECT TMP2.ID, TMP2.PARENT_ID, TMP2.TITLE, TMP2.MODIFY,
TMP2.ORD_NUM
FROM (SELECT N2.ID, N2.PARENT_ID, N2.TITLE, N2.MODIFY, N2.ORD_NUM
FROM NODES N2
ORDER BY N2.TITLE ASCENDING -- СОРТИРОВКА
) TMP2 INNER JOIN TREE TMP3 ON TMP3.ID = TMP2.PARENT_ID
)
SELECT T.* FROM TREE T
З.Ы. Все, убегаю, а то щаз за советы прибегут бить. =)