select语句中的SQL乘法和四舍五入
在select语句的一部分中,我想将该值四舍五入到两位小数。select有一个乘法,我取一列的值乘以另一列,再除以100。我希望这个值只返回两位小数,但似乎没有任何东西是正确的。以下是我迄今为止所尝试的:select语句中的SQL乘法和四舍五入,select,decimal,rounding,sql-function,multiplication,Select,Decimal,Rounding,Sql Function,Multiplication,在select语句的一部分中,我想将该值四舍五入到两位小数。select有一个乘法,我取一列的值乘以另一列,再除以100。我希望这个值只返回两位小数,但似乎没有任何东西是正确的。以下是我迄今为止所尝试的: SELECT a.Rate AS 'Rate' ,a.LoI AS 'Liability' --------------------------------------------------- ---- Tried Each Of These Seperately
SELECT
a.Rate AS 'Rate'
,a.LoI AS 'Liability'
---------------------------------------------------
---- Tried Each Of These Seperately ---------------
---------------------------------------------------
CAST(a.Rate * a.LoI / 100, money) AS 'Premium'
ROUND(a.Rate * a.LoI / 100,2) AS 'Premium'
CAST((A.Rate * a.LoI / 100), money) AS 'Premium'
CONVERT(A.Rate * a.LoI / 100, money) AS 'Premium'
FROM tblAspecs a
a、 速率是一种数据类型十进制(10,2)
a、 LoI是数据类型bigint
我正在使用Microsoft SQL Server Management Studio 2010。选择cast((123.456*2/100)作为十进制(38,2))
为我工作:)但那可能不是你想要的
所以我想你可以试试:
SELECT
a.Rate AS 'Rate'
,a.LoI AS 'Liability'
,CAST((a.Rate * a.LoI / 100) AS decimal(38,2)) 'Premium' FROM tblAspecs a
成功了。看起来我使用了错误的CAST语法,因为我没有在其中包含“AS”声明,也没有正确设置decimal数据类型。谢谢@KTrum