sql >> Databáze >  >> RDS >> Sqlserver

CTE získat všechny děti (potomky) rodiče

Mělo by to stačit:

WITH MyTest as
(
  SELECT P.ProductID, P.ParentID, CAST(P.ProductID AS VarChar(Max)) as Level
  FROM Products P
  WHERE P.ParentID = 0

  UNION ALL

  SELECT P1.ProductID, P1.ParentID, CAST(P1.ProductID AS VarChar(Max)) + ', ' + M.Level
  FROM Products P1  
  INNER JOIN MyTest M
  ON M.ProductID = P1.ParentID
 )
SELECT * From MyTest

A zde je aktualizovaný SQL Fiddle.

Podívejte se také na tento odkaz, kde najdete nápovědu k CTE... Rozhodně je dobré je vědět:

Doufám, že to pomůže!



  1. Získejte aktuální rok, aktuální měsíc a aktuální den v MySQL

  2. chyba:ORA-65096:neplatný společný název uživatele nebo role v oracle

  3. Jak zakázat všechna omezení CHECK a cizích klíčů pro tabulku na serveru SQL (příklady T-SQL)

  4. Jak zkopírovat ze souboru CSV do tabulky PostgreSQL s hlavičkami v souboru CSV?