Sql 基于上一个值拉取排序的下一行
我有一个表列出了依赖项,但我不知道如何按照图的实际显示顺序对其进行排序(使用DB2SQL) 图表(列出组) 34->23->65-> 目标是按照图表的顺序进行排序 该表有两个字段“组”和“依赖”。理想的第一列是34,0(0,因为它不依赖于任何东西),然后是23,34(依赖于第34组),然后是65,23(依赖于第23组)。遵循集团模式,依靠 因此,结果如下: 1. GROUP DEPEND 2. 34 0 3. 23 34 4. 65 23 1.群体依赖 2.34 0 3.23 34 4.65 23 是否可以使用变量或其他内容查看上一条记录的组以确定下一行Sql 基于上一个值拉取排序的下一行,sql,db2,Sql,Db2,我有一个表列出了依赖项,但我不知道如何按照图的实际显示顺序对其进行排序(使用DB2SQL) 图表(列出组) 34->23->65-> 目标是按照图表的顺序进行排序 该表有两个字段“组”和“依赖”。理想的第一列是34,0(0,因为它不依赖于任何东西),然后是23,34(依赖于第34组),然后是65,23(依赖于第23组)。遵循集团模式,依靠 因此,结果如下: 1. GROUP DEPEND 2. 34 0 3. 23 34 4. 65 23 1.群体依赖 2
非常感谢您提供的任何帮助或想法当前版本的DB2支持递归查询,因此以下内容应该可以工作(至少我的DB2 9.7 Express-C在Windows上是这样): 请注意,我使用了
groupno
而不是GROUP
作为列名,因为GROUP
是保留字,不应用作列名
with dep_tree (groupno, depend, group_order) as (
select groupno, depend, 1 as group_order
from group_list
where depend = 0
union all
select c.groupno, c.depend, p.group_order + 1
from group_list c,
dep_tree p
where p.groupno = c.depend
)
select group_order, groupno, depend
from dep_tree
order by group_order;