Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle SQL tworzący różne poziomy danych z jednej tabeli

Możesz użyć rekurencyjnego CTE:

WITH CTE(ITEM_VALUE, ITEM_ABOVE, DESCRIPTION, ITEM_GROUP) AS 
(
   SELECT ITEM_VALUE, ITEM_ABOVE, DESCRIPTION, DESCRIPTION AS ITEM_GROUP
   FROM mytable
   WHERE ITEM_ABOVE = 'CAR'

   UNION ALL

   SELECT t1.ITEM_VALUE, t1.ITEM_ABOVE, t1.DESCRIPTION, t2.ITEM_GROUP
   FROM mytable t1
   JOIN CTE t2 ON t1.ITEM_ABOVE = t2.ITEM_VALUE
)
SELECT ITEM_VALUE, ITEM_ABOVE, DESCRIPTION, ITEM_GROUP
FROM CTE 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL — łączy składnię/słowa kluczowe

  2. Porównanie listy wartości z tabelą

  3. jak zwiększyć wartość datetime z wartością przyrostu jako 30 minut w Oracle?

  4. Oracle:dynamiczne zapytanie z klauzulą ​​IN za pomocą kursora

  5. brakująca lub nieprawidłowa opcja , przy tworzeniu tabeli ze względu na to, że nie istnieje