SQL分层请求按优先级连接不获取第一个根
我有一个INTERSHOP进程表,其中包含所有正在运行的作业和以前运行的作业,我希望使用分层请求进行搜索和显示 以下是我所做的:SQL分层请求按优先级连接不获取第一个根,sql,oracle12c,Sql,Oracle12c,我有一个INTERSHOP进程表,其中包含所有正在运行的作业和以前运行的作业,我希望使用分层请求进行搜索和显示 以下是我所做的: SELECT LEVEL N, LPAD(' ', 3*LEVEL-3) || P.NAME "HIERARCHY", TO_CHAR(FROM_TZ(P.STARTDATE, 'UTC') AT TIME ZONE 'Europe/Paris', 'DD/MM/YYYY HH24:MI:SS') STARTTIME, TO_CHA
SELECT LEVEL N, LPAD(' ', 3*LEVEL-3) || P.NAME "HIERARCHY",
TO_CHAR(FROM_TZ(P.STARTDATE, 'UTC') AT TIME ZONE 'Europe/Paris', 'DD/MM/YYYY HH24:MI:SS') STARTTIME,
TO_CHAR(FROM_TZ(P.ENDDATE, 'UTC') AT TIME ZONE 'Europe/Paris', 'DD/MM/YYYY HH24:MI:SS') ENDTIME,
P.HOSTNAME,
P.SERVERNAME,
P.STATE
FROM PROCESS P
WHERE FROM_TZ(P.STARTDATE, 'UTC') AT TIME ZONE 'Europe/Paris' >= TO_DATE('14/05/2021 08:45', 'DD/MM/YYYY HH24:MI')
AND FROM_TZ(P.STARTDATE, 'UTC') AT TIME ZONE 'Europe/Paris' <= TO_DATE('14/05/2021 10:10', 'DD/MM/YYYY HH24:MI')
CONNECT BY PRIOR P.UUID = P.PARENTUUID
ORDER SIBLINGS BY P.STARTDATE;
非常感谢 但是不要只想要层次结构-层次结构为1和层次结构为更多之间有什么区别?具有PARENTUUID(即子级)但级别为1的流程-听起来像是数据建模错误,要使某些事物根据一条规则成为父对象,而另一些事物根据同一条规则不是父对象,目前我找不到PARENTUUID=NULL的行(因此没有父对象,所以仅此一项),但确实如此。我不太理解“我找不到行……但是有”-如果行在表中,您怎么找不到它们?如果表中没有行,为什么说“有”看起来不太难。基本的递归CTE将完成这项工作。你能为你呈现的结果添加样本数据吗?
| N | HIERARCHY | STARTTIME | ENDTIME | HOSTNAME | SERVERNAME | STATE |
| - | --------- | ------------------- | ------- | -------- | ---------- | ----- |
| 1 | JOB1 | 14/05/2021 08:41:00 | ... | ... | ... | ... |
| 1 | JOB2 | 14/05/2021 08:42:00 | ... | ... | .. | ... |
| 1 | JOB1 | 14/05/2021 08:43:00 | ... | ... | ... | ... |
| 1 | JOB3 | 14/05/2021 08:44:00 | ... | ... | ... | ... |
| 2 | JOB4 | 14/05/2021 08:45:00 | ... | ... | ... | ... |
| 3 | JOB5 | 14/05/2021 08:46:00 | ... | ... | ... | ... |
| 3 | JOB6 | 14/05/2021 08:47:06 | ... | ... | ... | ... |
| 1 | JOB1 | 14/05/2021 08:45:00 | ... | ... | ... | ... |