select语句中的SQL乘法和四舍五入

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语句的一部分中,我想将该值四舍五入到两位小数。select有一个乘法,我取一列的值乘以另一列,再除以100。我希望这个值只返回两位小数,但似乎没有任何东西是正确的。以下是我迄今为止所尝试的:

 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