You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps Server查询:如何展示任务与User Story的三级层级

实现任务前置依赖的三级层级SQL查询方案
  • 需求目标:将现有仅展示二级任务层级(任务A → 任务B)的查询,扩展为包含父级用户故事的三级层级结构(用户故事123 → 任务A → 任务B)。

  • 核心实现思路:通过递归CTE(公共表表达式)处理任务的前置依赖关系,同时关联用户故事表获取父级信息,最后根据层级生成缩进格式的输出。

示例SQL代码

WITH RECURSIVE task_hierarchy AS (
    -- 基础节点:取无前置任务的任务,关联所属用户故事
    SELECT 
        us.id AS story_id,
        us.name AS story_name,
        t.id AS task_id,
        t.name AS task_name,
        t.predecessor_id,
        1 AS level
    FROM tasks t
    JOIN user_stories us ON t.user_story_id = us.id
    WHERE t.predecessor_id IS NULL

    UNION ALL

    -- 递归遍历:获取前置任务的子任务,继承用户故事信息并提升层级
    SELECT 
        th.story_id,
        th.story_name,
        t.id AS task_id,
        t.name AS task_name,
        t.predecessor_id,
        th.level + 1 AS level
    FROM tasks t
    JOIN task_hierarchy th ON t.predecessor_id = th.task_id
)
-- 按用户故事、层级排序,生成带缩进的层级文本
SELECT 
    CASE level
        WHEN 1 THEN story_name
        WHEN 2 THEN '  ' || task_name
        WHEN 3 THEN '    ' || task_name
    END AS 层级结构
FROM task_hierarchy
ORDER BY story_id, level, task_id;

注意事项

  • 请根据实际数据库结构,替换示例中的表名(tasks、user_stories)和字段名(user_story_id等)。
  • 若任务前置依赖超过2级,递归逻辑会自动适配,可通过调整CASE语句中的空格数来对应层级缩进。
  • 若需要更复杂的格式化效果,建议在应用层处理缩进,SQL仅负责获取层级关联数据。

内容的提问来源于stack exchange,提问作者Marco Aurélio Andrade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 16:05:26