Oracle 層次查詢的乙個妙用

2021-04-13 07:51:11 字數 653 閱讀 7708

往下查詢所有的節點, 按節點縮排.

select

*from

organ connect 

byparent_id 

=prior id start 

with

parent_id 

isnull;

其工作方式為, 先找到 parent_id 為 null 的記錄. 再按 parent_id = prior id 指定的規則往下層層展開.

此處 prior 表示按上一層的 id 等於本層的 parent_id 擴充套件, 相當於 connect by this_row.parent_id = prior_row.id.

在 connect by 子句裡還可以使用組合條件. 另外, 如果 connect by 中的條件沒有 prior, 則視為簡單的剪枝條件.

這個用法並不新鮮.  今天發現乙個妙用, 根據乙個節點, 找它的所有父節——可用於判斷子節點是否屬於父節點, 這時依然可以用這種層次查詢, 查詢方式如下

select

*from

organ connect 

byprior parent_id 

=id start 

with

id =

861;

這樣可以逐層追溯所有上級節點.

C STL fstream的乙個妙用

上週日在任務中國上接了乙個任務,程式不是很難,主要是他們學校有個程式提交系統,一開始程式把基礎的例子都過來,但是一到optional test就掛掉。後面想到可能是檔案中的數字有問題。原題目要求是這樣的,從檔案中讀取出是int的資料。本來用的是fstream的,但是 遇到不是int就掛掉了,後來就乾...

isdefined的乙個妙用。

乙個小貼士。當你的form裡有乙個checkbox的時候,你會先判斷是否有值存在,然後存入資料庫。或則使用如下 cfparamname form.abc value 0 來預先定義一下。但是,這個工作可以使用isdefined來完成。條件是,你的值只有1和0。如果符合條件,你可以這樣寫,就可以不使用...

oracle的層次查詢

語法 select 列名次from 表名次 where 條件 start with 條件connect by prior 當前表這段 級聯表字段。解釋 where 條件為可選,start with 條件connect by prior 語句完成遞迴查詢,形成一棵樹形結構。start with 表示開...