Математически, 1.2200 и 1.22 - это одно и то же число.
Отображение числа на самом деле является строкой, которая отличается от физического содержимого числа, поэтому число округляется в SQL Server одинаково.и Oracle, это просто отображается по-разному.
Более того, о типах с плавающей запятой в SQL: если вы объявите переменную как имеющую s десятичные разряды, она всегда будет отображаться как имеющая s десятичные разряды, независимо от значения, например
declare @x decimal(10,6)
declare @y decimal(10,2)
set @x =3
set @y=@x -- identical to set @y=cast(@x as decimal(10,2))
select @x -- selects 3.000000
select @y -- selects 3.00
select 'The number is ' + cast(@x as varchar) -- selects 'The number is 3.000000'
select 'The number is ' + cast(@y as varchar) -- selects 'The number is 3.00'
Однако существует техническая разница в значении 3,00 и 3,0000, и это относительная ошибка числа.Поскольку все действительные числа округлены, 3,00 фактически означает 3 +/- 0,005, а 3,0000 - фактически 3 +/- 0,00005, поскольку известны более значимые цифры.