Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Тип возвращаемого значения при обработке выражений
|
|||
|---|---|---|---|
|
#18+
Добрый день. Проблема в следующем. Считываю из xml выражение типа (1+360/3). Это выражение мне нужно обработать и получить float на выходе. Проблема в том что Код: sql 1. Вернет целое 4 Пробовал так Код: sql 1. Вернет то же 4, что логично. Вопрос как без парсинга строки вернуть FLOAT? Заранее какое выражение лежит внутри xml не известно. Теоретически любое выражение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 10:34 |
|
||
|
Тип возвращаемого значения при обработке выражений
|
|||
|---|---|---|---|
|
#18+
sanitar, CAST() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 10:36 |
|
||
|
Тип возвращаемого значения при обработке выражений
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 10:38 |
|
||
|
Тип возвращаемого значения при обработке выражений
|
|||
|---|---|---|---|
|
#18+
Чтобы сделать CAST надо ведь парсить выражение! Код: sql 1. выдаст ровно 4.0 Вот это выражение Код: sql 1. даст 4.6, но чтобы его выполнить нужно парсить строку на составляющие! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 10:41 |
|
||
|
Тип возвращаемого значения при обработке выражений
|
|||
|---|---|---|---|
|
#18+
sanitar, как вы из такого, например xml-я Код: sql 1. получаете этот select Код: sql 1. ? Динамик СКЛ ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 10:45 |
|
||
|
Тип возвращаемого значения при обработке выражений
|
|||
|---|---|---|---|
|
#18+
court, делаю проход по таблице и обрабатываю через sp_executesql чтобы посчитать значение выражения но из-за типов на выходе имею не то что нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 10:52 |
|
||
|
Тип возвращаемого значения при обработке выражений
|
|||
|---|---|---|---|
|
#18+
sanitarcourt, делаю проход по таблице и обрабатываю через sp_executesql чтобы посчитать значение выражения но из-за типов на выходе имею не то что нужно.ясно, тогда функция вам сильно не навредит :) fnEval Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Код: sql 1. 2. 3. 4. 5. 6. txtres1+360/1004.6 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 10:56 |
|
||
|
Тип возвращаемого значения при обработке выражений
|
|||
|---|---|---|---|
|
#18+
court, Создавать OLE объекты внутри функции? Мне кажется это перебор. Может как-то можно проще все-таки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 11:13 |
|
||
|
Тип возвращаемого значения при обработке выражений
|
|||
|---|---|---|---|
|
#18+
court, изобретательно, только работать это будет не особо быстро Если скорость всё-таки важна - я бы пошёл по следующему пути: запилил бы .net сборку с функциями работы с регулярными выражениями (она вообще не помешает и может понадобиться для многих других задач) и добавлял бы с её помощью ко всем целым числам .0 Если версия 2017 и выше - можно через python - скрипт, там результат деления целых чисел изначально дробный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 11:16 |
|
||
|
Тип возвращаемого значения при обработке выражений
|
|||
|---|---|---|---|
|
#18+
Собственно говоря, всё портит именно целочисленное деление. Может, просто тупо заменить "/" на "*1./" ?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 11:24 |
|
||
|
Тип возвращаемого значения при обработке выражений
|
|||
|---|---|---|---|
|
#18+
iapСобственно говоря, всё портит именно целочисленное деление. Может, просто тупо заменить "/" на "*1./" ?? Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 11:27 |
|
||
|
Тип возвращаемого значения при обработке выражений
|
|||
|---|---|---|---|
|
#18+
iapiapСобственно говоря, всё портит именно целочисленное деление. Может, просто тупо заменить "/" на "*1./" ?? Код: sql 1. 2. 3. 4. 0, конечно, лишний: Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 11:29 |
|
||
|
Тип возвращаемого значения при обработке выражений
|
|||
|---|---|---|---|
|
#18+
iap, ну или так) отличный вариант, если конечно t-sql-подобных комментариев не будет в выражении /**/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 11:42 |
|
||
|
Тип возвращаемого значения при обработке выражений
|
|||
|---|---|---|---|
|
#18+
iap, Спасибо, наверное так пойдет. Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 11:53 |
|
||
|
Тип возвращаемого значения при обработке выражений
|
|||
|---|---|---|---|
|
#18+
навсякий, ещё такой "ход конём" ) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. res4,6 Но тут и провайдер нужно, что бы был установлен, и "праздно" валяющийся на сервере файлик Акцесса потребуется, и выражение, что бы было "знакомо" Jet-SQL ... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 12:06 |
|
||
|
Тип возвращаемого значения при обработке выражений
|
|||
|---|---|---|---|
|
#18+
sanitarВопрос как без парсинга строки вернуть FLOAT? Не надо боятся парсинга Код: 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. 45. 46. 47. 48. 49. 50. 51. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 13:39 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39629675&tid=1689933]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 366ms |

| 0 / 0 |
