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

Permintaan SQL untuk rantai induk-anak

Gunakan CTE rekursif :

DECLARE @id INT
    SET @id = 3

;WITH hierarchy AS (
  SELECT t.id, t.parentid
    FROM YOUR_TABLE t
   WHERE t.id = @id
 UNION ALL
 SELECT x.id, x.parentid
   FROM YOUR_TABLE x
   JOIN hierarchy h ON h.parentid = x.id)
SELECT h.id
  FROM hierarchy h

Hasil:

id
---
3
2
1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Prosedur mengharapkan parameter yang tidak diberikan

  2. Gabung alami di SQL Server

  3. SQL - Tipe data operan datetime2 tidak valid untuk operator pengurangan

  4. LPAD di SQL Server 2008

  5. Cara mudah memilih kolom kanan sebagai Kunci Utama untuk tabel yang diberikan