我有一个带有以下列的'Task'表(TaskOrder用于命令父级范围内的子级,而不是整个表):
TaskId ParentTaskId TaskName TaskOrder
我有这个CTE查询返回所有行:
with tasks (TaskId, ParentTaskId, [Name]) as ( select parentTasks.TaskId, parentTasks.ParentTaskId, parentTasks.[Name] from Task parentTasks where ParentTaskId is null union all select childTasks.TaskId, childTasks.ParentTaskId, childTasks.[Name] from Task childTasks join tasks on childTasks.ParentTaskId = tasks.TaskId ) select * from tasks
此查询按照您的预期返回按其级别排序的所有任务.如何更改它以将结果按以下顺序排列到其层次结构顺序中?
- Task 1 -- Task 1 Subtask 1 -- Task 1 Subtask 2 - Task 2 - Task 3
谢谢.
编辑:答案应该使用无限数量的级别.