sql >> Database >  >> RDS >> Oracle

Verbind via clausule om de top van de hiërarchie te krijgen

Oracle heeft een LEVEL pseudokolom die u kunt gebruiken:

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

Als u vanaf een willekeurig niveau een waarde op het hoogste niveau (root) wilt vinden, laat u de kolomnaam voorafgaan door de CONNECT_BY_ROOT operator:

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


  1. Zoek in GROUP_CONCAT met LIKE

  2. Postgres combineert meerdere indexen

  3. Wijziging Data Capture (CDC)-retentieperiode wijzigen in SQL Server - SQL Server-zelfstudie

  4. Bestandspad opslaan naar Database / SQL