sql >> Database teknologi >  >> RDS >> Oracle

Forbind med klausul for at få toppen af ​​hierarkiet

Oracle har en LEVEL pseudokolonne som du kan bruge:

SELECT
  myTable.ID,
  myTable.ParentID
FROM myTable
WHERE LEVEL = 1
CONNECT BY PRIOR myTable.ID = myTable.ParentID

For at finde en værdi på øverste niveau (rod) fra et hvilket som helst niveau, skal du gå foran kolonnenavnet med CONNECT_BY_ROOT operatør:

SELECT
  myTable.ID,
  myTable.ParentID,
  CONNECT_BY_ROOT myTable.ID AS "Top Level ID"
FROM myTable
CONNECT BY PRIOR myTable.ID = myTable.ParentID


  1. Mysql Indsæt ordrenummer efter VARCHAR-felt

  2. Sender data fra React til MySQL

  3. Hvordan får man JSON-data fra php og skærm til tekstvisning i Android?

  4. Implicitte konverteringer og afrunding