Sql 基于上一个值拉取排序的下一行

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

我有一个表列出了依赖项,但我不知道如何按照图的实际显示顺序对其进行排序(使用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 是否可以使用变量或其他内容查看上一条记录的组以确定下一行


非常感谢您提供的任何帮助或想法

当前版本的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;