Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Konversikan Oracle CONNECT BY query ke SQL Server query

SQL Server tidak memiliki CONNECT BY . Anda perlu menggunakan CTE rekursif.

Tempatkan START WITH di WHERE filter bagian jangkar (bagian pertama dari CTE).

Di bagian rekursif (babak kedua), gabungkan kembali CTE ke EMP dengan CONNECT BY kondisi.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengikat parameter kueri berdasarkan nama dengan ODP.NET

  2. Cara memasukkan data secara massal dari kursor ref ke tabel sementara di PL/SQL

  3. Menggunakan REGEXP_SUBSTR dengan Strings Qualifier

  4. Bagaimana cara menguji apakah string format tanggal adalah string format tanggal yang valid di Oracle

  5. Bagaimana cara melewatkan nilai di blok anonim dengan parameter tabel plsql