Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle CONNECT OLEH anak rekursif ke permintaan orang tua, termasuk orang tua utama yang merujuk sendiri

Saya mendapatkan hasil itu dengan menggunakan WITH ayat.

WITH REC_TABLE ( ID, PARENT_ID)
AS
(
    --Start WITH 
    SELECT ID, PARENT_ID
    FROM table
    WHERE ID='C'

    UNION ALL
    --Recursive Block
    SELECT T.ID, T.PARENT_ID
    FROM table T 
    JOIN REC_TABLE R
    ON R.PARENT_ID=T.ID
    AND R.PARENT_ID!=R.ID   --NoCycle rule
)
SELECT *
FROM REC_TABLE;

Dan sepertinya berhasil juga.

select id, parent_id
from T
START WITH id = 'C'
CONNECT BY id = PRIOR parent_id and parent_id!= prior id;
--                                  ^^^^^^^^^^^^^^^^^^^^
--                                      break cycles

Semoga membantu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mendapatkan XML dari Lima Tabel Oracle yang Berbeda

  2. cara mendapatkan hasil ini menggunakan kueri Oracle dalam struktur hierarki

  3. mengekspor database Oracle (membuat file data .sql)

  4. Prosedur Tersimpan Oracle dengan perintah Alter

  5. Parsing XML dengan ruang nama yang tidak dikenal di Oracle SQL