#sql #sql-server #tsql
#sql #sql-сервер #tsql
Вопрос:
Я использую процедуру для получения некоторой информации из моей базы данных, и у меня есть значение, которое я получаю из функции. Это значение имеет 5 знаков после запятой, поэтому я попытался получить это значение только с 2 знаками после запятой, делая это:
cast([dbo].[myFunction](param1, param2, param3)as decimal(20,2)) as Total
Код не выдает мне никакой ошибки, но он содержит 5 знаков после запятой вместо 2.
Заранее спасибо.
Комментарии:
1. Мы упускаем здесь часть вашей логики? Это выражение будет возвращать только
decimal(20,2)
, которое будет иметь 2 знака после запятой. (Конечно, мы не знаем DDL дляmyFunction
, но это не меняет инструкцию, поскольку вы явно преобразуете значение).2. Возможно, помимо этого выражения происходит что-то еще, например, является ли это частью
UNION (ALL)
запроса? Можете ли вы опубликовать весь свой запрос?3. Это решено, моя процедура имеет объединение, и это было без приведения, а sql предполагает большее количество знаков после запятой, мне также пришлось принудительно выполнять 2-ю часть объединения.
4. @HoneyBadger это правильно. Спасибо.
Ответ №1:
Это решено, моя процедура имеет объединение, и это было без приведения, а sql предполагает большее количество знаков после запятой, мне также пришлось принудительно выполнять 2-ю часть объединения.
Спасибо вам всем.