Перемещение рекурсивных запросов из Oracle Sql в Redshift - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь переместить этот рекурсивный запрос из Oracle Sql в Redshift.Для этого я должен быть в состоянии избавиться от команд «CONNECT BY», «LEVEL» и «PRIOR» в коде, написанном ниже.Мне было интересно переместить рекурсивный шаблон в оператор WITH - UNION ALL, но я не уверен, как управлять функцией "LEVEL".Может быть кто-нибудь так любезно поможет мне переписать этот код, избавившись от «CONNECT BY», «LEVEL» и «PRIOR», но сохранив иерархию?Заранее большое спасибо.

WITH 
LEVEL_COUNTING AS (
SELECT 
    t.*
    ,REGEXP_SUBSTR(STR, '[^,]+', 1, LEVEL) AS SINGLE_ELEMENT
    ,LEVEL AS element_no
FROM 
    t CONNECT BY INSTR(STR, ',', 1, LEVEL - 1) > 0
    AND id = PRIOR id
    AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...