|
Временная функция
|
|||
---|---|---|---|
#18+
Здравствуйте! Есть исходные данные. SQL. Исходные данные Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
SQL Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Для этого можно создать пользовательскую функцию. SQL Код: 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.
Временную функцию как Код: sql 1.
не возможно создать. Скажите, какой есть способ использовать как временную функцию? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2021, 17:45 |
|
Временная функция
|
|||
---|---|---|---|
#18+
ferzmikk, у вас возникли проблемы, потому что вы не следуете Информационному правилу Кодда, которое гласит: "Вся информация в реляционной базе данных на логическом уровне должна быть явно представлена единственным способом: значениями в таблицах". Вместо того, чтобы выписывать условный выбор в каждой отдельно взятой функции, заполните справочники правил и извлекайте данные из справочников. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2021, 18:06 |
|
Временная функция
|
|||
---|---|---|---|
#18+
Владислав Колосов Вместо того, чтобы выписывать условный выбор в каждой отдельно взятой функции, заполните справочники правил и извлекайте данные из справочников. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2021, 17:36 |
|
Временная функция
|
|||
---|---|---|---|
#18+
ferzmikk, в понимании sql server временные объекты - это не те, которые меняются со временем, а те которые существуют только во время сессии если в вашем случае необходимо, чтобы функция в зависимости от какого-то опорной даты производила разные расчёты на основании входных значений, то это будет либо скалярная функция типа MyFunction, только на входе будет еще дата и внутри ветки на обработку разных алгоритмов в зависимости от входной даты. Либо inline табличная функция с теми же входными и немного иначе выводимыми выходными данными, отличающаяся внутренней реализацией, но более приятная для оптимизатора запросов. "CASE WHEN @Мера = 10 THEN 'A'" очень неплохо укладывается на справочник с двумя полями: значение и значение-замена. Если алгоритм не меняется, а меняются только варианты замен, то такой справочник join к основной таблице и case when делается уже на основе полей базовой таблицы и справочника замен. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2021, 18:37 |
|
Временная функция
|
|||
---|---|---|---|
#18+
ferzmikk Владислав Колосов Вместо того, чтобы выписывать условный выбор в каждой отдельно взятой функции, заполните справочники правил и извлекайте данные из справочников. Как я понимаю, формулы у вас будут в общем случае разные, недостаточно будет сделать справочник. Но надо постараться, по возможности, а если не получится, то, во первых, почему именно временные? Формулы же у вас не рождаются от генератора случайных чисел, сделайте постоянные функции :-) Во вторых, функции очень непроизводительны, так что изучите этот вопрос перед принятием такого ответственного архитектурного решения. Функции есть табличные скалярные, инлайн, поизучайте всё это месяцок, потрейсите, почитайте планы, сделайте замеры, сведите замеры в отчёт. А то переделывать всё с нуля после запуска в прод будет обидно, и грозит последствиями. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2021, 20:00 |
|
Временная функция
|
|||
---|---|---|---|
#18+
ferzmikk Владислав Колосов Вместо того, чтобы выписывать условный выбор в каждой отдельно взятой функции, заполните справочники правил и извлекайте данные из справочников. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2021, 20:01 |
|
|
start [/forum/topic.php?fid=46&tid=1684194]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
155ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 248ms |
total: | 504ms |
0 / 0 |