Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

T-SQL mendapatkan simpul root dalam hierarki

Bagaimana kalau memindahkan LEFT JOIN dari CTE?

WITH root_nodes
AS (
    -- Grab all the leaf nodes I care about
    SELECT NULL as child_node, n.node as parent_node
    FROM #nodes n
    WHERE n.node IN (1, 2)

    UNION ALL

    -- Grab all the parent nodes
    SELECT rn.parent_node as child_node, a.parent_node
    FROM root_nodes rn
        JOIN #arcs a
      ON rn.parent_node = a.child_node
)
SELECT DISTINCT rn.parent_node AS root_node
FROM root_nodes rn
    LEFT JOIN #arcs a
  ON rn.parent_node = a.child_node
WHERE a.parent_node IS NULL

Kumpulan hasil adalah 1, 4, 7.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat kueri passthrough / passthru dapat diedit?

  2. kunci pemrosesan dimensi ssas tidak ditemukan kesalahan

  3. Bagaimana cara mengatur batas waktu skrip SQL Server dari dalam skrip?

  4. Koneksi MSSQL CodeIgniter

  5. Hapus Tanda Kutip Pada Semua Baris di Kolom