如何在T-Sql中使用大小写将基础数字的值设置为基于条件的值?示例澄清:
列 SalesPrice 用于价格(2位小数),例如129.99或19.99。
我想选择SalesPrice,但结果略有调整:
谢谢!
答案 0 :(得分:0)
假设所有值都是正值,这里有一种方法:
update t
set SalesPrice = (case when SalesPrice >= 100 then floor(SalesPrice) + 1
when SalesPrice < 100 then floor(SalesPrice) + 0.95
end)
where (SalesPrice - floor(SalesPrice)) >= 0.9;
我添加了where
子句,因此这仅影响小数量大于0.90的价格。这样,15.49
之类的价格就不会受到影响。您可以根据需要进行调整。如果您想影响所有带小数值的价格,那么:
update t
set SalesPrice = (case when SalesPrice >= 100 then floor(SalesPrice) + 1
when SalesPrice < 100 then floor(SalesPrice) + 0.95
end)
where SalesPrice > floor(SalesPrice);
where
子句保证有小数。这可以防止21
变成21.95
。