2
我需要informix 11.50層次結構數據SQL的一點幫助。我有以下表格:Informix 11.50分層SQL
create table cont_reln (
contact char(10),
relation_type char(1),
related_to char(10));
contact | relation_type | related_to
1000 CH 2001
1000 CH 2002
1000 CH 2003
2001 CH 3001
2001 CH 3002
2002 CH 3003
2003 CH 3004
3004 CH 4001
4001 CH 5001
我寫兩個sql語句,可以採取接觸,找出所有的家長,和所有的孩子:
-- Get the children
SELECT contact, related_to, LEVEL
FROM cont_reln
START WITH contact = '?'
CONNECT BY NOCYCLE PRIOR related_to = contact
ORDER SIBLINGS BY related_to;
-- Get the parents
SELECT contact, related_to, LEVEL
FROM cont_reln
START WITH related_to = '?'
CONNECT BY NOCYCLE PRIOR contact = related_to
ORDER SIBLINGS BY contact;
每個查詢返回的內容我在之後,但我不確定如何將它們結合起來,以便在我開始使用任何聯繫人號碼時獲得以下輸出...因此,不管是什麼'?'是,如果它在這個層次的地方,該數據集將返回完全相同如下:
contact | relation_type | related_to
NULL NULL 1000
1000 CH 2001
2001 CH 3001
2001 CH 3002
1000 CH 2002
2002 CH 3003
2003 CH 3004
3004 CH 4001
4001 CH 5001
我知道的第一行(與空值)都必須返回一次作爲SP單獨的硬編碼回報我知道根節點,但從第2行開始 - >我不知道該怎麼做。
任何想法?
**編輯** 查找父項的查詢不正確 - 修復。