SQL流程排序问题

捕获.PNG

已知起始节点和到站节点,只有这种指向,如何通过写SQL把这个流程按照正确的顺序查询出来?

图片.png查出来了,但是只有1条数据怎么回事

4.PNG

2.PNG

SQL 用户Z0305596 发布于 2023-7-7 11:31 (编辑于 2023-7-7 16:03)
1min目标场景问卷 立即参与
回答问题
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
YmengLv5中级互助
发布于2023-7-7 14:22(编辑于 2023-7-7 16:39)

ORACLE数据库可以这样写

SELECT 起始,到站,LEVEL

FROM 表名

START WITH 起始='START'

CONNECT BY 起始=PRIOR 到站

或者

with temp(processno,fromnodeno,tonodeno) as (

select processno,fromnodeno,tonodeno from 表名 where processno='   ' AND fromnodeno='START'

union all 

select c.processno,c.fromnodeno,c.tonodeno from 表名 c,temp t where c.fromnodeno=t.tonodeno

)

SELECT * from temp

  • 用户Z0305596 用户Z0305596(提问者) 查出来怎么是空值呢
    2023-07-07 15:11 
  • Ymeng Ymeng 回复 用户Z0305596(提问者) 你FROMNODEID字段里没有START数据吧,所以查出来为空
    2023-07-07 15:43 
  • Ymeng Ymeng 回复 用户Z0305596(提问者) START WITH是确定根节点的第一个值,如果你知道第一个值是谁,那么START就改成第一个值
    2023-07-07 15:45 
  • Ymeng Ymeng 回复 用户Z0305596(提问者) 确定吗?
    2023-07-07 15:47 
  • Ymeng Ymeng 回复 用户Z0305596(提问者) 注意大小写哦
    2023-07-07 15:48 
最佳回答
0
lxy2Lv6中级互助
发布于2023-7-7 11:45

你这个没有规律的吗

  • 用户Z0305596 用户Z0305596(提问者) 有规律呀,从START开始到C1,C1到C3;...,一直到END,我想把正确的流程排出来,现在只有指向的这种数据
    2023-07-07 11:50 
最佳回答
0
CD20160914Lv8专家互助
发布于2023-7-7 11:46

看得我一脸的问号。。。没有8月15中秋节就开始玩游戏猜谜语了?

  • Z4u3z1 Z4u3z1 TA的意思是START 到 C1;C1作为起点 到C3 ;C3作为起点到C2...............
    2023-07-07 11:48 
  • CD20160914 CD20160914 回复 Z4u3z1 但是后面的c4过了不应该是c6吗,我看不懂他的模拟
    2023-07-07 11:51 
  • 用户Z0305596 用户Z0305596(提问者) 回复 CD20160914 C4是到C7的,C7到C8,C8到C6,C6到C9,C9到C10,C10到END,结束
    2023-07-07 11:54 
  • Z4u3z1 Z4u3z1 回复 CD20160914 TA补充了 都是取到站的顺序。都不说啥数据库...
    2023-07-07 11:57 
  • 用户Z0305596 用户Z0305596(提问者) 回复 Z4u3z1 数据库你们自己编一个就好
    2023-07-07 12:00 
最佳回答
0
snrtuemcLv8专家互助
发布于2023-7-7 12:04

这个其实就是树形结构递归查询,自己可以百度对应数据库树结构语句

参考一个例子

https://blog.51cto.com/u_15064626/4345769

image.png

  • 4关注人数
  • 532浏览人数
  • 最后回答于:2023-7-7 16:39
    请选择关闭问题的原因
    确定 取消
    返回顶部