|
Поиск по древовидному справочнику
|
|||
---|---|---|---|
#18+
Добрый день имеется задача не могу найти оптимальное решение есть древовидный справочник и компонент, который отображает его в интерфейсе в виде папок подпапок. нужно организовать поиск по листам дерева,но в результате поиска выводить и все родительские/дочерние ветки если наименование листа/ветки удовлетворяет критерию поиска with t as (select 1 as ids,'ЛС' as n , cast(null as number) pids from dual union all select 2 as ids,'простуда' as n ,1 pids from dual union all select 3 as ids,'кашель' as n , 2 pids from dual union all select 4 as ids,'капли' as n , 2 pids from dual union all select 5 as ids,'сухой ' as n , 3 pids from dual union all select 6 as ids,'влажный ' as n , 3 pids from dual ) select n , sys_connect_by_path(n, '->') as n_way , ids, pids, connect_by_isleaf from t start with pids is null connect by prior ids = pids; n n_way ids pids connect_by_isleaf ЛС ->ЛС 1 0 простуда ->ЛС->простуда 2 1 0 кашель ->ЛС->простуда->кашель 3 2 0 сухой ->ЛС->простуда->кашель->сухой 5 3 1 влажный ->ЛС->простуда->кашель->влажный 6 3 1 капли ->ЛС->простуда->капли 4 2 1 пример если ищу "Сухой" выводиться ЛС ->ЛС 1 0 простуда ->ЛС->простуда 2 1 0 кашель ->ЛС->простуда->кашель 3 2 0 сухой ->ЛС->простуда->кашель->сухой 5 3 1 если "кашель" ЛС ->ЛС 1 0 простуда ->ЛС->простуда 2 1 0 кашель ->ЛС->простуда->кашель 3 2 0 сухой ->ЛС->простуда->кашель->сухой 5 3 1 влажный ->ЛС->простуда->кашель->влажный 6 3 1 если "капли" ЛС ->ЛС 1 0 простуда ->ЛС->простуда 2 1 0 капли ->ЛС->простуда->капли 4 2 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2019, 11:05 |
|
Поиск по древовидному справочнику
|
|||
---|---|---|---|
#18+
ilyuha111, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2019, 12:37 |
|
Поиск по древовидному справочнику
|
|||
---|---|---|---|
#18+
ilyuha111если ищу "Сухой" выводиться ... как ищете и что неправильно? ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2019, 13:04 |
|
|
start [/forum/topic.php?fid=52&msg=39765733&tid=1882872]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
128ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 20ms |
total: | 232ms |
0 / 0 |