sql >> Databasteknik >  >> RDS >> Sqlserver

Hierarkisk databas Välj / Infoga uttalande (SQL-server)

Om du använder SQL Server 2005 eller senare kan du använda rekursiva frågor för att få din information. Här är ett exempel:

With tree (id, Name, ParentID, [level])
As (
    Select id, Name, ParentID, 1
    From [myTable]
    Where ParentID = 0

    Union All

    Select child.id
          ,child.Name
          ,child.ParentID
          ,parent.[level] + 1 As [level]
    From [myTable] As [child]
    Inner Join [tree] As [parent]
    On [child].ParentID = [parent].id)
Select * From [tree];

Denna fråga returnerar raden som begärs av den första delen (Där ParentID =0) och alla underrader rekursivt. Hjälper detta dig?

Jag är inte säker på att jag förstår vad du vill ska hända med ditt inlägg. Kan du ge mer information om det förväntade resultatet när du är klar?

Lycka till!



  1. MySQL Välj Top N Rader

  2. INTERSECT i MySQL

  3. Generera en slumpmässig alfanumerisk sträng som primärnyckel för en modell

  4. Återställa en mySQL-instans från ett annat användarkonto (macOS)