0

フォルダの下にあるすべての子を見つけるにはどうすればよいですか? エクスプローラーのように、neeth の下にフォルダーがあり、フォルダー + フォルダーなどがあります。

フォルダー 2 の下のすべてのフォルダーを検索したい

ORACLE db を使用しています。

Folder 1
| |
| Folder 2
| |  |
| |  Folder 3
| |  |  |
| |  |  Folder 7
| |  |  |
| |  |  Folder 8
| |  |
| |  Folder 4
| |
| Folder 5
| |
| Folder 6 
|
Folder 10

このクエリにより、親階層が得られます。

SELECT AL_ITEM_ID, AL_FATHER_ID, AL_DESCRIPTION
FROM ALL_LISTS
CONNECT BY AL_ITEM_ID = PRIOR AL_FATHER_ID
start with AL_DESCRIPTION = 'Folder 7'
4

1 に答える 1

2

私はこれがうまくいくと思います:

Select
    al_item_id, 
    al_father_id,
    al_description
From 
    all_lists
Connect By 
    Prior al_item_id = al_father_id
Start With
    al_description = 'Folder 2'
Where
    Level > 1

そうでない場合、これはほぼ確実に行われます。接続の前または後に where が評価されるかどうかによって異なります。

Select
    al_item_id,
    al_father_id,
    al_description
From (
    Select
        al_item_id, 
        al_father_id,
        al_description,
        level as lvl
    From 
        all_lists
    Connect By 
        Prior al_item_id = al_father_id
    Start With
        al_description = 'Folder 2'
    ) x
Where
    lvl > 1
于 2013-09-09T19:36:25.113 に答える