sql >> Databáze >  >> RDS >> Sqlserver

Hierarchie řazení z výsledků rekurzivního dotazu v SQL 2005

Jedním ze způsobů, jak to udělat, je přidat sloupec hierarchie, který má všechna předchozí ID v seznamu:

with tasks (TaskId, ParentTaskId, [Name], TaskIdList) as
(
    select parentTasks.TaskId,
           parentTasks.ParentTaskId,
           parentTasks.[Name],
           parentTasks.TaskId
    from   Task parentTasks
    where  ParentTaskId is null

    union all

    select childTasks.TaskId,
           childTasks.ParentTaskId,
           childTasks.[Name],
           tasks.TaskIdList + '.' + childTasks.TaskId
    from   Task childTasks
    join   tasks
    on     childTasks.ParentTaskId = tasks.TaskId
)

select TaskId, ParentTaskId, [Name] from tasks
   order by TaskIdList

Všimněte si, že to předpokládá, že TaskId je ID založené na řetězcích. Pokud ne, měli byste jej přenést na varchar, než jej zřetězíte.



  1. Jak změnit výchozí port mysql z 3306 na 3360

  2. výsledkem smyčky mysql je php mimo dotaz mysql

  3. Jak mohu spočítat online uživatele ve své aplikaci?

  4. konzultační programování při a pokud je vnořeno