Попробуйте использовать CEILING(numeric)
для округления.
Согласно MSDN:
Эта функция возвращает наименьшее целое число, большее или равное, указанное числовое выражение.
SELECT
CEILING(TB_Product.RetailPrice * 0.95) AS SpecialOfferPrice
Для округления используйте ROUND. Как сказано в MSDN: :
Возвращает числовое значение, округленное до указанной длины или точности.
SELECT ROUND(175.45, 0)
Вывод: 175.00
ОБНОВЛЕНИЕ:
Если число меньше 200 и вы хотите округлить только до одного числа после десятичной точки, а если оно больше 200, вы хотите использовать CEILING
:
DECLARE @delimiter DECIMAL(10,5) = 200
SELECT
CASE
WHEN E.FooNumber < @delimiter THEN ROUND(e.FooNumber, 0)
ELSE CEILING(e.FooNumber)
END AS FooNumbers
FROM (VALUES(100.1),
(180.4),
(250.5),
(350.8)) E(FooNumber)