sql >> Databasteknik >  >> RDS >> Oracle

Konvertera Oracle CONNECT BY-fråga till SQL Server-fråga

SQL Server har inte CONNECT BY . Du måste använda en rekursiv CTE.

Placera START WITH i WHERE filter på ankardelen (den första delen av CTE).

I den rekursiva delen (den andra halvan), återförena CTE till EMP med CONNECT BY skick.

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. node-postgres UTF lösenord bugg

  2. MySQL-fråga med en array

  3. app misslyckas med att länka till mysql-bibliotek (CentOS)

  4. Använda databasscheman i SQL Server