Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle SQL създава различни нива на данни от една таблица

Можете да използвате рекурсивен 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 Developer с "тринидад и тобаго"

  2. Oracle - Преобразуване на SDO_GEOMETRY в WKT?

  3. Oracle групира част от реда и получава ред с последно клеймо за време

  4. Хибернация на Oracle:съпоставяне на свойството String в колона CLOB

  5. Мога ли да деактивирам тригер вътре в тригер в oracle?