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

Menghapus subpohon duplikat dari kueri CONNECT-BY di Oracle

Node akar dalam hierarki terbatas harus selalu diketahui. Menurut definisi:http://en.wikipedia .org/wiki/Tree_structure simpul akar adalah simpul yang tidak memiliki orang tua. Untuk memeriksa apakah simpul yang diberikan adalah simpul akar, ambil "parent_id" dan periksa di tabel jika ada catatan dengan id ini. Kueri mungkin terlihat seperti ini:

SELECT id,parent_id,
  CONNECT_BY_ISLEAF leaf,
  LEVEL,
  SYS_CONNECT_BY_PATH(id, '/') Path,
  SYS_CONNECT_BY_PATH(parent_id, '/') Parent_Path
FROM tree_hierarchy th
WHERE CONNECT_BY_ISLEAF<>0
  CONNECT BY PRIOR id = PARENT_id
START WITH not exists (
      select 1 from tree_hierarchy th1 
      where th1.id = th.parent_id
  )
ORDER SIBLINGS BY ID;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kebuntuan di Oracle

  2. Memetakan Oracle UDT yang berisi array asosiatif di C#

  3. Pertimbangan kinerja untuk data sementara di Oracle

  4. Bagaimana cara menambahkan 10 detik di SQL current_timestamp ( Oracle )

  5. Oracle Mengonversi Detik ke Jam:Menit:Detik