|
|
|
Миграция ирархического запроса
|
|||
|---|---|---|---|
|
#18+
Внутри SQL запроса используется sub query для составления пути SYS_CONNECT_BY_PATH(Oracle) Для MS SQL сервера надо написать аналогичную конструкцию. Хотел использовать WITH, но он же не может выступать как sub query? Или опять попробовать использовать FOR XML PATH? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 16:17:15 |
|
||
|
Миграция ирархического запроса
|
|||
|---|---|---|---|
|
#18+
cte можно засунуть в табличную функцию и потом ее apply-ить --- совет хотите? не пытайтесь дословно перевести оракловый код. лучше заново ставить себе задачу: вот то на входе, вот это хочу на выходе. и решать эту задачу на T-SQL. а то получите говнокод с такой же говнопроизводительностью ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 16:41:11 |
|
||
|
Миграция ирархического запроса
|
|||
|---|---|---|---|
|
#18+
ErikIХотел использовать WITH, но он же не может выступать как sub query?Может. Надо написать один WITH на весь запрос, но несколько определений CTE, раздёлённых запятыми. Каждое CTE может обращаться к любому вышестоящему в списке неограниченное количество раз. После последнего CTE, разумеется, надо написать основной запрос с возможнстью использования любых определённых в WITH CTE. Но надо, всё-таки, подумать, может не надо пытаться точно копировать конструкцию в Oracle? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 16:51:21 |
|
||
|
Миграция ирархического запроса
|
|||
|---|---|---|---|
|
#18+
Тогда вопрос по hierarchyid. Как с помощью её получить путь от корня до последнего потомка в виде агрегированой строки? Это возможно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 17:00:38 |
|
||
|
Миграция ирархического запроса
|
|||
|---|---|---|---|
|
#18+
iapErikIХотел использовать WITH, но он же не может выступать как sub query?Может. Надо написать один WITH на весь запрос, но несколько определений CTE, раздёлённых запятыми. Каждое CTE может обращаться к любому вышестоящему в списке неограниченное количество раз. После последнего CTE, разумеется, надо написать основной запрос с возможнстью использования любых определённых в WITH CTE. Но надо, всё-таки, подумать, может не надо пытаться точно копировать конструкцию в Oracle? да он же про рекурсию. типа каждому манагеру найти его подчиненных и этот подсчет подчиненных зафигачить в cte. не поможет куча cte через зпт, ибо манагер меняется, т.е. он якорь передает в cte, ну т.е. функцию ему надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 17:06:43 |
|
||
|
Миграция ирархического запроса
|
|||
|---|---|---|---|
|
#18+
ErikI, hierarchyid и есть агрегированная строка в символьном написании. \1\2\3 Если правильно помню, там есть ограничение на имя узла - то ли 20, то ли 32 символа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 17:25:17 |
|
||
|
Миграция ирархического запроса
|
|||
|---|---|---|---|
|
#18+
Если вопрос о том, как записи собрать в строку, то ответ есть в FAQ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 17:26:51 |
|
||
|
Миграция ирархического запроса
|
|||
|---|---|---|---|
|
#18+
Надо не просто забросить а сделать это в рекурсии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 17:28:53 |
|
||
|
Миграция ирархического запроса
|
|||
|---|---|---|---|
|
#18+
hierarchyid работает без рекурсии и эффективнее СТЕ, если требуется за один проход найти ветки нескольких корней. Но надо понимать, что один раз потребуется иерархически пронумеровать каждую запись и эту иерархию поддерживать при добавлении-удалении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 17:41:13 |
|
||
|
Миграция ирархического запроса
|
|||
|---|---|---|---|
|
#18+
o-o, Разве сте не поддерживает смену якоря? Мне для каждой строки нужен корректный путь до корня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 17:43:59 |
|
||
|
Миграция ирархического запроса
|
|||
|---|---|---|---|
|
#18+
держите, разбирайтесь убегаю Код: sql 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. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 17:56:55 |
|
||
|
Миграция ирархического запроса
|
|||
|---|---|---|---|
|
#18+
вот ето еще запустите после создания функции Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 17:59:26 |
|
||
|
Миграция ирархического запроса
|
|||
|---|---|---|---|
|
#18+
ErikI, Запрос Оракловый покажите -- можно подумать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 19:51:11 |
|
||
|
Миграция ирархического запроса
|
|||
|---|---|---|---|
|
#18+
Вот решение с помощью hierarchyid. Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2016, 17:53:32 |
|
||
|
Миграция ирархического запроса
|
|||
|---|---|---|---|
|
#18+
o-oда он же про рекурсию. типа каждому манагеру найти его подчиненных и этот подсчет подчиненных зафигачить в cte. не поможет куча cte через зпт, ибо манагер меняется, т.е. он якорь передает в cte, ну т.е. функцию ему надо насколько я понял, уровень, на котором расположен каждый подчиненный манагера, тем же запросом тоже получить не удастся (аналог Ораклового Level) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2017, 23:15:01 |
|
||
|
Миграция ирархического запроса
|
|||
|---|---|---|---|
|
#18+
andreymxo-oда он же про рекурсию. типа каждому манагеру найти его подчиненных и этот подсчет подчиненных зафигачить в cte. не поможет куча cte через зпт, ибо манагер меняется, т.е. он якорь передает в cte, ну т.е. функцию ему надо насколько я понял, уровень, на котором расположен каждый подчиненный манагера, тем же запросом тоже получить не удастся (аналог Ораклового Level)Можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2017, 23:45:53 |
|
||
|
Миграция ирархического запроса
|
|||
|---|---|---|---|
|
#18+
подскажи на примере Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. cnmanagerСтепановИвановСтепановПетровСтепановСидоровПетровПетрыкинСидоровВаськинИванов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2017, 23:56:53 |
|
||
|
Миграция ирархического запроса
|
|||
|---|---|---|---|
|
#18+
хм... вроде так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. cnmanagerlevelСтепанов1ИвановСтепанов2ПетровСтепанов2СидоровПетров3ПетрыкинСидоров4ВаськинИванов3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2017, 00:00:05 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=175&tid=1690710]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
64ms |
get topic data: |
18ms |
get forum data: |
1ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 395ms |

| 0 / 0 |
