Мой предпочтительный метод - привести к соответствующему десятичному значению:
select cast(avg(purch_amt) as decimal(10, 2))
from orders;
Это немного отличается от round()
, хотя оба обычно дают один и тот же результат.Как объясняется в документации для round()
:
Возвращаемое значение имеет тот же тип, что и первый аргумент (при условии, что оно является целым, двойным или десятичным)
Это означает, что то, что отображается в приложении, может по-прежнему показывать больше (или меньше), чем количество десятичных знаков.Изменяя тип, приложение будет знать, сколько десятичных знаков должно быть в результате.
Из этого примера видно, что round()
не меняет тип данных - следовательноэто может не изменить представление в инструменте.