Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Oracle分层查询转换为MariaDB_Oracle_Mariadb_Hierarchical Data - Fatal编程技术网

将Oracle分层查询转换为MariaDB

将Oracle分层查询转换为MariaDB,oracle,mariadb,hierarchical-data,Oracle,Mariadb,Hierarchical Data,我正在将oracle查询转换为maria db。MariaDB中没有类似“开始于…连接于…”这样的分层查询。所以我不得不创建类似于“开始…”的查询,但看起来很难。你们能帮帮我吗 SELECT * FROM (SELECT T2.JOB_TYPE, T2.COMPONENT_TYPE, T1.POOL_SEQ, FN_GET_CODE_VALUE(

我正在将oracle查询转换为maria db。MariaDB中没有类似“开始于…连接于…”这样的分层查询。所以我不得不创建类似于“开始…”的查询,但看起来很难。你们能帮帮我吗

SELECT *
       FROM
           (SELECT T2.JOB_TYPE, 
                   T2.COMPONENT_TYPE,
                   T1.POOL_SEQ,
                   FN_GET_CODE_VALUE('componenttype',T2.COMPONENT_TYPE) AS COMPONENT_TYPE_NM,
                   MIN(T1.WORKFLOW_SEQ)WORKFLOW_SEQ,
                   MIN(T1.UPPER_WORKFLOW_SEQ)UPPER_WORKFLOW_SEQ,
                   MAX(T1.DEFAULT_JOB_SEQ)DEFAULT_JOB_SEQ,
                   T1.WORKFLOW_TYPE,
                   /*   MAX(T1.WORKFLOW_TYPE)WORKFLOW_TYPE, */
                   COUNT(CASE T1.JOB_STATE WHEN '01' THEN 1 END)STATE_01_CNT,
                   COUNT(CASE T1.JOB_STATE WHEN '02' THEN 1 END)STATE_02_CNT,
                   COUNT(CASE T1.JOB_STATE WHEN '03' THEN 1 END)STATE_03_CNT,
                   COUNT(CASE T1.JOB_RESULT WHEN '20' THEN 1 END)ERCNT,
                   COUNT(CASE T1.JOB_RESULT WHEN '10' THEN 1 END)END_CNT,
                   COUNT(*)TOT_CNT
                   /*   ,MAX(T1.POOL_SEQ)POOL_SEQ   */
              FROM JOB_TBL T1,
                   SERVER_POOL_TBL T2
             WHERE T1.POOL_SEQ =  T2.POOL_SEQ

          )T
  START WITH UPPER_WORKFLOW_SEQ IS NULL
CONNECT BY UPPER_WORKFLOW_SEQ = PRIOR WORKFLOW_SEQ

使用
connectby
是Oracle专有的扩展,在“发明”CTE之前引入。递归CTE也更通用。

我认为Maria DB没有与
connect by
相当的功能。。尽管您可以在过程或函数中实现它。