2008-09-02 5 views

答えて

0

同じテーブルを参照する外部キー(しばしば知られている「豚の耳の関係」)を使用してツリー構造を構築することができます。次に、CONNECT BY構文を使用してツリーをトラバースすることができます。特別なキーワードレベルがどこまで私は、その後の構造を示すために、データをインデントするために使用されてきた私たちは木、ダウン決定するために使用することができる方法

SQL> create table qs 
    2 (q_id integer primary key 
    3 , parent_q_id integer references qs 
    4 , parent_q_answer varchar2(1) 
    5 , q_text varchar2(100) 
    6*); 

Table created. 

SQL> insert into qs values (1, null, null, 'Is it bigger than a person?'); 

1 row created. 

SQL> insert into qs values (2, 1, 'Y', 'Does it have a long neck?'); 

1 row created. 

SQL> insert into qs values (3, 2, 'Y', 'It is a giraffe'); 

1 row created. 

SQL> insert into qs values (4, 2, 'N', 'It is an elephant'); 

1 row created. 

SQL> insert into qs values (5, 1, 'N', 'Does it eat cheese?'); 

1 row created. 

SQL> insert into qs values (6, 5, 'Y', 'It is a mouse'); 

1 row created. 

SQL> insert into qs values (7, 5, 'N', 'It is a cat'); 

1 row created. 

SQL> commit; 

Commit complete. 

SQL> select rpad(' ',level*4,' ')||parent_q_answer||': '||q_text 
    2 from qs 
    3 start with parent_q_id is null 
    4 connect by prior q_id = parent_q_id; 

RPAD('',LEVEL*4,'')||PARENT_Q_ANSWER||':'||Q_TEXT 
------------------------------------------------------------------------------------------------------------------------------ 
    : Is it bigger than a person? 
     Y: Does it have a long neck? 
      Y: It is a giraffe 
      N: It is an elephant 
     N: Does it eat cheese? 
      Y: It is a mouse 
      N: It is a cat 

7 rows selected. 

注:ここでは簡単な例です。

関連する問題