Rumah > pangkalan data > Oracle > Satu artikel menganalisis pertanyaan struktur pokok ORACLE

Satu artikel menganalisis pertanyaan struktur pokok ORACLE

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2022-09-05 17:48:24
ke hadapan
2651 orang telah melayarinya

Artikel ini membawakan anda pengetahuan yang berkaitan tentang Oracle terutamanya artikel yang menganalisis pertanyaan struktur pokok ORACLE. Mari kita lihat bersama-sama semua orang.

Satu artikel menganalisis pertanyaan struktur pokok ORACLE

Tutorial yang disyorkan: "Tutorial Video Oracle"

Dalam pengaturcaraan harian, kita sering menghadapi struktur pokok Mewakili, sebagai contoh, organisasi struktur, bahagian pentadbiran, dsb. Ini sering dipaparkan melalui jadual dalam pangkalan data. Di sini kita mengambil jadual pembahagian pentadbiran yang mudah sebagai contoh Dalam penggunaan sebenar, medan dan tahap penerangan lain boleh ditambah kepadanya.

Jadual dikaitkan dengan ID dan PID untuk merealisasikan penyimpanan struktur pokok. Penciptaan jadual dan pernyataan data adalah seperti berikut:

-- Create table
create table TREETEST
(
  id   NVARCHAR2(50),
  pid  NVARCHAR2(50),
  name NVARCHAR2(50)
)
Salin selepas log masuk
insert into TREETEST (ID, PID, NAME) values ('1', null, '山东省');
insert into TREETEST (ID, PID, NAME) values ('2', '1', '青岛市');
insert into TREETEST (ID, PID, NAME) values ('3', '1', '烟台市');
insert into TREETEST (ID, PID, NAME) values ('4', null, '河南省');
insert into TREETEST (ID, PID, NAME) values ('5', null, '河北省');
insert into TREETEST (ID, PID, NAME) values ('6', '2', '市南区');
insert into TREETEST (ID, PID, NAME) values ('7', '2', '市北区');
insert into TREETEST (ID, PID, NAME) values ('8', '2', '即墨市');
Salin selepas log masuk

Bagaimana hendak menanyakan struktur pokok? Oracle menyediakan pertanyaan rekursif untuk pertanyaan. , Tapis semua rekod yang dikembalikan.

Syarat 2---Keadaan mengehadkan nod akar Sudah tentu, anda juga boleh melonggarkan kebenaran untuk mendapatkan berbilang nod akar, iaitu, mendapatkan berbilang pokok
SELECT [Column]…..
  FEOM [Table]
  WHERE Conditional1
  START WITH Conditional2
  CONNECT BY PRIOR Conditional3
  ORDER BY [Column]
Salin selepas log masuk

Syarat 3-- -Syarat pautan, tujuannya ialah Berikan apakah hubungan antara bapa dan anak lelaki, dan lakukan pertanyaan rekursif berdasarkan hubungan ini (dalam jadual di atas, ia adalah ID=PID) Isih---isih semua rekod yang dikembalikan

  • Mari kita lihat contoh khusus di bawah:
  • 1. Tanya semua subnod di bawah Wilayah Shandong

di mana Nod dengan ID 1 ialah Wilayah Shandong Hasil pertanyaan adalah seperti berikut:

SELECT *
  FROM TREETEST t
 START WITH t.PID=1
CONNECT BY PRIOR t.ID = t.PID
Salin selepas log masuk
2. Pertanyaan. nod anak peringkat seterusnya bagi Bandar Qingdao (perhatikan perbezaan daripada yang di atas , semua nod anak dan nod anak peringkat seterusnya)

3. Jika anda perlu menyambungkan Bandar Qingdao, Wilayah Shandong, dsb. untuk dipaparkan, anda boleh menggunakan SYS_CONNECT_BY_PATH Untuk mencapai

hasil pertanyaan adalah seperti berikut: Satu artikel menganalisis pertanyaan struktur pokok ORACLE

SELECT t.ID, SYS_CONNECT_BY_PATH(t.NAME, '\') AS INDU_NAME
  FROM TREETEST t
 START WITH t.PID IS NULL
CONNECT BY PRIOR t.ID = t.PID
Salin selepas log masuk
4. Dengan cara yang sama, anda juga boleh menggunakan Carian dari bawah ke atas

Tutorial yang disyorkan: "

Tutorial Video Oracle"

Atas ialah kandungan terperinci Satu artikel menganalisis pertanyaan struktur pokok ORACLE. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:jb51.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan