SQL質疑応答スレ 10問目

このエントリーをはてなブックマークに追加
443NAME IS NULL
ひとつのテーブルで各レコードは他のレコードと1:Nの親子関係にあります
コード  親コード データ
1     1     A
2     1     B
3     2     C
4     3     D
5     1     E
6     2     F

まあこんな感じで1以外は全部親を1つ持ち親はひとつ以上の子を持ちます(子が無い親も居ますが)
これである親の子レコード以下を下記のような感じで全部抽出したいのですが
SQLだけで出来ますでしょうか

コード=2のときの抽出結果
コード データ 世代
3    C    1
4    D    2
6    F    1

世代は2から何世代下にいるかです、子なら1孫なら2…ということです

また無理ならこうゆうことを可能にするデータ構造を教えてください
DBはFireBird1.5を想定していますがフリーのDBなら何でも良いです