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.
假设我有一个名为 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.