sql >> Database teknologi >  >> RDS >> Oracle

Konverter Oracle CONNECT BY-forespørgsel til SQL Server-forespørgsel

SQL Server har ikke CONNECT BY . Du skal bruge en rekursiv CTE.

Indsæt START WITH i WHERE filter af ankerdelen (den første del af CTE).

I den rekursive del (anden halvdel), forenes CTE igen til EMP med CONNECT BY tilstand.

WITH cte AS (
    SELECT
        LEVEL = 1,
        e.EMPNO,
        e.ENAME,
        e.JOB,
        e.MGR
    FROM EMP e
    WHERE e.MGR IS NULL

    UNION ALL

    SELECT
        cte.LEVEL + 1,
        e.EMPNO,
        e.ENAME,
        e.JOB,
        e.MGR
    FROM EMP e
    JOIN cte ON e.MGR = cte.EMPNO
)

SELECT
    cte.LEVEL,
    cte.EMPNO,
    cte.ENAME,
    cte.JOB,
    cte.MGR
FROM cte
ORDER BY cte.LEVEL;



  1. Indlæs Postgres-dump efter docker-compose up

  2. Hvordan udfører jeg automatisk et MySQL script eller rutine efter videreudvikling fra model

  3. IntegrityError duplikatnøgleværdi overtræder unik begrænsning - django/postgres

  4. MySQL:hvordan konverteres til EAV?