Деление двух значений int t-sql имеет только два возможных результата:
- ошибка 8134 (деление на ноль)
- снова значение int
Достаточно привести один из операндов к numeric
:
select round(1.0/3,3,0)
Чтобы избежать конечных нулей, еще один способ:
select cast(1.0/3 as decimal(18,3))
Это, конечно, работает только с числовыми литералами. Если у вас есть столбец или значение параметра, cast
все еще необходим.
Эта слабая попытка кодового гольфа сбивает еще одного персонажа:
select convert(decimal(9,3),1.0/3)