Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.12.05;
Скачать: CL | DM;

Вниз

Oracle. connect by prior. Порядок возвращения записей   Найти похожие ветки 

 
12 ©   (2010-08-25 14:30) [0]

пусть имеется иерархия

ТЕСТ
 ТЕСТ2
 ТЕСТ33
     ТЕСТ4
     ТЕСТ5
     ТЕСТ6
        ТЕСТ7


получаем ее запросом

    select LEVEL, s.* from subscriber s                  
    where s.filial_id = 13
    start with s.id_subscriber = 4234                    
    connect by prior s.id_subscriber = s.up_id;


1 4234   ТЕСТ
2 4235 4234  ТЕСТ2
2 4236 4234  ТЕСТ33
3 4237 4236  ТЕСТ4
3 4239 4236  ТЕСТ5
3 4240 4236  ТЕСТ6
4 4241 4240  ТЕСТ7


т.е. все получили так, что можно строить иерархию прямо идя сверху вниз

вопрос
А не может ли так быть, что вернется
1 4234   ТЕСТ
2 4236 4234  ТЕСТ33
2 4235 4234  ТЕСТ2

3 4237 4236  ТЕСТ4
3 4239 4236  ТЕСТ5
3 4240 4236  ТЕСТ6
4 4241 4240  ТЕСТ7


и, получается, что уже не возможно построить, не заглядывая вперед!

так может вернуться dataset по второму варианту или нет? (сколько раз не пробовал - нет. Но вдруг?)


 
Petr V. Abramov ©   (2010-08-25 14:39) [1]


> так может вернуться dataset по второму варианту или нет?
>  (сколько раз не пробовал - нет. Но вдруг?)
>

запросто может.
чтоб гарантированно отсортировать "правильно", начиная, по-моему, с 9-ки, есть волшебное слово order siblings by, но в 10-ке оно периодически глючит, валится по 600-й ошибке, лечится патчем до 10.2.0.4, который я не ставил, ничего сказать по него не могу.


 
12 ©   (2010-08-25 14:47) [2]

спасибо, Петр!

Надо чтоб гарантировано работало на всех, в т.ч и на 8 :)
придется пересмотреть построение..


 
Игорь Шевченко ©   (2010-08-25 14:51) [3]


> придется пересмотреть построение..


order by в конце запроса не поможет ?


 
Petr V. Abramov ©   (2010-08-25 14:53) [4]


> Игорь Шевченко ©   (25.08.10 14:51) [3]

не поможет, сортировка по иерархии слетит.


 
12 ©   (2010-08-25 14:56) [5]

да, в общем случае, слетит
пробовал уже


 
Dennis I. Komarov ©   (2010-08-26 16:17) [6]

Первое поле не имеет смысл, а вот сделать уникальный ключ для каждого родителя - поможет.



Страницы: 1 вся ветка

Текущий архив: 2010.12.05;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.007 c
15-1283231904
12
2010-08-31 09:18
2010.12.05
Как заставить delphi 7 при старте на весь экран быть?


15-1282732731
Kerk
2010-08-25 14:38
2010.12.05
Макрос, Excel и интернет


2-1284444311
ZV
2010-09-14 10:05
2010.12.05
Цикл For To Do


15-1282732230
12
2010-08-25 14:30
2010.12.05
Oracle. connect by prior. Порядок возвращения записей


15-1282854584
Юрий
2010-08-27 00:29
2010.12.05
С днем рождения ! 27 августа 2010 пятница