1. 程式人生 > >榮工又解決問題了:用ORACLE的sys_connect_by_path函式,獲得遞迴查詢路徑上各個節點的運算值

榮工又解決問題了:用ORACLE的sys_connect_by_path函式,獲得遞迴查詢路徑上各個節點的運算值

語句示例如下

Select JgId,JgType,OrgCode,Orgname,DepCode,DepName,ClsCode,ClsName,EtpCode,EtpName

       sys_connect_by_path(PlanRate,'*')
from Tplnstruct start with JgId=10010000000101
connect by prior JgId=PreJgId

order by JgType

sys_connect_by_path函式應該是以指定字元做分隔符,列出路徑上指定欄位的值,以星號做分割符

就獲得了Tplnstruct表在以JGID為線索的遞迴查詢中的路徑上節點值的乘積。。。我寫了些啥。。。自己也不太懂,反正!!

最後的結果是

組織的PlanRate  乘以  部門的PlanRate  乘以  專櫃的PlanRate

從原生的查詢結果看,這個遞迴查詢用的是先根遍歷法