Microsoft SQL 服务器,按百分比增加价格,四舍五入

Microsoft SQL Server, increasing price by percentage, rounded up

假设我有一个名为 products_tbl 的 table 和一个名为 price 的价格列。我需要一个脚本来将价格向上舍入 3%,所以如果单元格的结果是 41.3,它必须变成 42。 可能吗?

使用这个

UPDATE products_tbl
set price = floor(price+(price*0.03))

首先使用 select 查询测试它是否按预期实现, 使用 ceiling 代替,我假设你的数据类型是 int

SELECT 
   ceiling(price+ ( price/100*3),0) RoundedpercentValue 
  ,price+ ( price/100*3)      PercentValue
 , price 
FROM PRODUCTS 

--更新table

UPDATE products
set price = ceiling(price+ ( price/100*3),0)

或者如果存在截断问题

Update Products
set price = ceiling(price + price *0.03)

这是我的理解,令我惊讶的是这个问题有这么多不同的解释:

BEGIN TRAN

UPDATE products_tbl
SET price = CEILING(price * 1.03)

SELECT *
FROM products_tbl

ROLLBACK TRAN -- Because we only answer w/ commits for a fee.