2015-05-30 34 views
0

我想學習hierachial查詢,所以我看到第一個語法,我們需要在第一個查詢中初始化種子值。我的問題是,如果初始種子查詢只返回一個值?或多個值?種子查詢應該在層次查詢中總是返回1行嗎?

說,如果我需要爲多個組

+0

你可能不太模糊嗎?給我們一個應用主題,以更好地理解你的問題。 – Dryadwoods

+0

這個問題並沒有真正的相關性,但你應該總是爲使用'postgresql','oracle','sql-server'的DBMS添加一個標籤,... –

回答

1

執行遞歸它可以返回多個值 - 從種子查詢充當輸入下一個遞歸設置的所有行。

例如,對於這個模式

create table T1 (
    p int, 
    c int 
) 

insert into T1 (p, c) values (0, 1) 
insert into T1 (p, c) values (1, 2) 
insert into T1 (p, c) values (2, 3) 
insert into T1 (p, c) values (10, 11) 
insert into T1 (p, c) values (11, 12) 
insert into T1 (p, c) values (11, 13) 

而這個遞歸查詢

WITH cte (p, c) as 
(
    select p, c from T1 where p = 0 or p = 10 
    union all 
    select T1.p, T1.c from T1 
    inner join cte on T1.p = cte.c 
) 
select * from cte 

請注意,該基地返回2行,你從那裏得到2個分支(您的多個組)。