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

Permintaan rekursif di SQL Server

Coba ini:

;WITH CTE
AS
(
    SELECT DISTINCT
        M1.Product_ID Group_ID,
        M1.Product_ID
    FROM matches M1
        LEFT JOIN matches M2
            ON M1.Product_Id = M2.matching_Product_Id
    WHERE M2.matching_Product_Id IS NULL
    UNION ALL
    SELECT
        C.Group_ID,
        M.matching_Product_Id
    FROM CTE C
        JOIN matches M
            ON C.Product_ID = M.Product_ID
)
SELECT * FROM CTE ORDER BY Group_ID

Anda dapat menggunakan OPTION(MAXRECURSION n) untuk mengontrol kedalaman rekursi.

DEMO SQL FIDDLE



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hapus Data melalui Fungsi Bernilai Tabel di SQL Server

  2. Menggunakan DMV ( Tampilan Manajemen Dinamis ) dan DMF ( Fungsi Manajemen Dinamis ) | Pemecahan Masalah Kinerja SQL Server -4

  3. Cara Menginstal sqlcmd &bcp di Ubuntu

  4. Penyedia OLE DB 'Microsoft.Jet.OLEDB.4.0' tidak dapat digunakan untuk kueri terdistribusi

  5. Mengganti nama Tabel di SQL Server (T-SQL)