sql >> Database >  >> RDS >> Oracle

Converteer Oracle CONNECT BY-query naar SQL Server-query

SQL Server heeft geen CONNECT BY . U moet een recursieve CTE gebruiken.

Plaats de START WITH in de WHERE filter van het ankergedeelte (het eerste deel van de CTE).

Voeg in het recursieve deel (de tweede helft) de CTE weer toe aan EMP met de CONNECT BY staat.

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. Voeg huidige datum/tijd in met now() in een veld met MySQL/PHP

  2. Hoe schakel ik het verlopen van het Oracle-wachtwoord uit?

  3. Upload afbeelding in MYSQL-database en toon deze met PHP met Swift

  4. Hoe procent berekenen?