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

Dapatkan Root parent dari anak di tabel Hierarchical

DECLARE @id INT = 6
;WITH parent AS
(
    SELECT id, parentId, 1 AS [level] from tbl WHERE id = @id
    UNION ALL 
    SELECT t.id, t.parentId, [level] + 1 FROM parent
    INNER JOIN tbl t ON t.id =  parent.parentid
)
SELECT TOP 1 id FROM parent ORDER BY [level] DESC

Jawaban @ TechDo mengasumsikan ID terendah adalah induknya. Jika Anda tidak ingin bergantung pada ini, maka kueri di atas akan diurutkan berdasarkan kedalaman.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah ada perbedaan antara SQL Server Express (2012) dan LocalDB?

  2. SQL berfungsi sebagai nilai parameter default?

  3. ROLLBACK TRUNCATE di SQL Server

  4. DEGREES() Contoh di SQL Server

  5. Bagaimana cara memperbaiki kesalahan 'Penyedia Pipa Bernama, kesalahan 40 - Tidak dapat membuka koneksi ke' SQL Server'?