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

ORACLE Hubungkan dengan klausa yang setara di SQL Server

SQL Server 2005+ setara dengan CONNECT BY Oracle sintaks query hirarkis adalah dengan menggunakan CTE rekursif. SQL Server 2008 menambahkan HierarchyID. Berikut ini contoh CTE rekursif:

WITH EmployeeHierarchy (EmployeeID, LastName, FirstName, ReportsTo, HierarchyLevel) AS (
   SELECT EmployeeID,
          LastName,
          FirstName,
          ReportsTo,
          1 as HierarchyLevel
     FROM Employees
    WHERE ReportsTo IS NULL
   UNION ALL
   -- Recursive step
   SELECT e.EmployeeID,
          e.LastName,
          e.FirstName,
          e.ReportsTo,
          eh.HierarchyLevel + 1 AS HierarchyLevel
     FROM Employees e
     JOIN EmployeeHierarchy eh ON e.ReportsTo = eh.EmployeeID)
  SELECT *
    FROM EmployeeHierarchy
ORDER BY HierarchyLevel, LastName, FirstName 

Googling "CTE hierarkis" dan/atau "CTE rekursif" akan menghasilkan banyak hasil. Saya mengambil contoh query dari 4GuysFromRolla.com.

CTE rekursif sekarang menjadi standar ANSI - sintaksnya tidak didukung hingga Oracle 11g seperti yang saya pahami.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapatkan daftar semua tabel di Oracle?

  2. Partisi dinamis tabel Oracle

  3. Permintaan Oracle sederhana:literal tidak cocok dengan string format

  4. Cara membuat pengguna di Oracle Multitenant 12c tanpa awalan C##

  5. Memulai Pengembang Oracle SQL di MacOSX