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

Cara mendapatkan tingkat hierarki kueri ini

Anda perlu menambahkan kolom bernama Level (atau apa pun yang Anda ingin menyebutnya) - baik untuk "jangkar" SELECT serta bagian rekursif dari CTE Anda - seperti ini:

WITH CategoryRec AS 
(
    SELECT Id, Parentid, Name, 1 AS 'Level'
    FROM dbo.Category

    UNION ALL

    SELECT cr.Id, c.Parentid, cr.Name, cr.Level + 1 
    FROM CategoryRec AS cr 
    INNER JOIN dbo.Category AS c ON cr.Parentid = c.Id
    WHERE c.Parentid IS NOT NULL
)
SELECT DISTINCT Id, Parentid, Name, Level
FROM  CategoryRec


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Microsoft ODBC Driver 13 untuk SQL Server :Login gagal untuk pengguna 'sa'

  2. Pengidentifikasi multi-bagian tidak dapat diikat pada SQL Server 2008

  3. Impor Excel ke SQL Server 2008

  4. Ubah format waktu tanggal default pada satu database di SQL Server

  5. Buat diagram hubungan tabel dari skema yang ada (SQL Server)