Округление или округление столбца SpecialOfferPrice в этом запросе? - PullRequest
0 голосов
/ 16 октября 2019

Как можно округлить или уменьшить значение столбца SpecialOfferPrice в этом запросе?

SELECT  TB_Product. ProductID, 
TB_Product.RetailPrice * 0.95 AS SpecialOfferPrice 

Ответы [ 5 ]

1 голос
/ 16 октября 2019

Используйте приведенный ниже запрос.

SELECT  TB_Product. ProductID, 
round(TB_Product.RetailPrice * 0.95) AS SpecialOfferPrice

для получения дополнительной информации см. Эту [ссылку] https://www.w3schools.com/sql/func_sqlserver_round.asp

0 голосов
/ 16 октября 2019

Вы можете использовать функции FLOOR () и CEILING () для округления вверх или вниз соответственно. https://docs.microsoft.com/en-us/sql/t-sql/functions/ceiling-transact-sql?view=sql-server-ver15 https://docs.microsoft.com/en-us/sql/t-sql/functions/floor-transact-sql?view=sql-server-ver15

0 голосов
/ 16 октября 2019

Попробуйте это:

SELECT  TB_Product. ProductID, 
ROUND(TB_Product.RetailPrice * 0.95, -2) AS SpecialOfferPrice 
0 голосов
/ 16 октября 2019

Используйте функции CEILING (), FLOOR ().

Эта ссылка далее объясняет (https://www.mssqltips.com/sqlservertip/1589/sql-server-rounding-functions--round-ceiling-and-floor/).

0 голосов
/ 16 октября 2019

Попробуйте использовать 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)  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...