DB2中几个递归语句的案例

DB2递归算法:
1、查找某个作业的下游作业:
WITH GET_STREAM_JOB(LEVEL,ETL_SYSTEM,ETL_JOB) AS (
SELECT 0,ETL_SYSTEM,ETL_JOB FROM PETL.ETL_JOB_STREAM WHERE ETL_JOB='XXX' 
UNION ALL
SELECT LEVEL+1,A.STREAM_SYSTEM,A.STREAM_JOB FROM PETL.ETL_JOB_STREAM A,GET_STREAM_JOB B
WHERE A.ETL_SYSTEM=B.ETL_SYSTEM AND A.ETL_JOB=B.ETL_JOB
)SELECT * FROM PETL.ETL_JOB WHERE (ETL_SYSTEM,ETL_JOB) IN (SELECT ETL_SYSTEM,ETL_JOB FROM GET_STREAM_JOB)
;
2、查找某个作业的的所有下游作业
WITH GET_STREAM_JOB(LEVEL,ETL_SYSTEM,ETL_JOB) AS (
SELECT 0,ETL_SYSTEM,ETL_JOB FROM PETL.ETL_JOB_DEPENDENCY WHERE DEPENDENCY_JOB='XXX' AND DEPENDENCY_SYSTEM='XXX'
UNION ALL
SELECT LEVEL+1,A.ETL_SYSTEM,A.ETL_JOB FROM PETL.ETL_JOB_DEPENDENCY A,GET_STREAM_JOB B WHERE A.DEPENDENCY_SYSTEM=B.ETL_SYSTEM 
AND A.DEPENDENCY_JOB =B.ETL_JOB
)SELECT MIN(T2.LEVEL),T1.ETL_SYSTEM,T1.ETL_JOB,T1.DESCRIPTION,T1.LAST_JOBSTATUS,T1.JOBTYPE FROM PETL.ETL_JOB T1,GET_STREAM_JOB T2
WHERE T1.ETL_SYSTEM=T2.ETL_SYSTEM AND T1.ETL_JOB=T2.ETL_JOB AND T1.JOBTYPE<>'M'
GROUP BY T1.ETL_SYSTEM,T1.ETL_JOB,T1.DESCRITTION,T1.LAST_JOBSTATU,T1.JOBTYPE
ORDER BY MIN(T2.LEVEL)
;
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值