|
|
|
Проблема с сортировкой при выполнении select c функцией
|
|||
|---|---|---|---|
|
#18+
Есть запрос который выполняет некоторую функцию. Нужно чтобы функция выполнялась в порядке сортировки по номерам квартир. Запрос выводит сортировку как надо, но результат выполнения функции показывает, что функция выполнялась не в порядке сортировки а как придется. Запрос такой: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Результат: kv_number kv_id kolvo_output f_tbzadan_add 001 88004 0 573647 002 91030 0 573649 003 91031 0 573646 004 91033 0 573648 005 91032 0 573645 Подскажите пожалуйста, что я не так делаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2014, 16:45:58 |
|
||
|
Проблема с сортировкой при выполнении select c функцией
|
|||
|---|---|---|---|
|
#18+
alexfess, порядок выполнения в SQL не гарнтируется никак... т.е. на plain sql в общем случае с гарантией вы это никак не сделалаете.. пишите еще одну хранимку с циклом по запросу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2014, 17:31:48 |
|
||
|
Проблема с сортировкой при выполнении select c функцией
|
|||
|---|---|---|---|
|
#18+
т.е. делать хранимку в которой запрос выполняется по 1 строчке или мудрить что то с курсорами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2014, 17:54:05 |
|
||
|
Проблема с сортировкой при выполнении select c функцией
|
|||
|---|---|---|---|
|
#18+
alexfess, первое... курсоры там не нужны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2014, 18:08:15 |
|
||
|
Проблема с сортировкой при выполнении select c функцией
|
|||
|---|---|---|---|
|
#18+
может создать функцию с атрибутом WINDOW ? тогда порядок сортировки можно задать явно.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2014, 20:31:15 |
|
||
|
Проблема с сортировкой при выполнении select c функцией
|
|||
|---|---|---|---|
|
#18+
alexfess, у вас функция генерирует результат, а как известно, order by применяется в самом конце, к результату select. Другими словами ваша функция выполняется до order by. Используйте подзапрос с order by, и уже к нему применяйте свою функцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2014, 20:52:18 |
|
||
|
Проблема с сортировкой при выполнении select c функцией
|
|||
|---|---|---|---|
|
#18+
Гость_0alexfess, у вас функция генерирует результат, а как известно, order by применяется в самом конце, к результату select. Другими словами ваша функция выполняется до order by. Используйте подзапрос с order by, и уже к нему применяйте свою функцию.не, это не кошерно, хотя может и сработать. кошерно написать агрегат, и как window-function с order by-ем запулить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2014, 21:02:41 |
|
||
|
Проблема с сортировкой при выполнении select c функцией
|
|||
|---|---|---|---|
|
#18+
Гость_0, добился сортировки по kv_id перепробовал вагон вариантов, но так и не получилось отсортировать по номеру КВ. В целом я понял в чем проблема, но как ее решить подзапросом не дотумкал :) Сейчас пишу хранимку с циклом хочу так попробовать. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2014, 23:32:00 |
|
||
|
Проблема с сортировкой при выполнении select c функцией
|
|||
|---|---|---|---|
|
#18+
alexfess, вот так не получается? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2014, 13:08:22 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=38684155&tid=1998599]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
207ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 549ms |

| 0 / 0 |
