Sql 使用精度计算数量

Sql 使用精度计算数量,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个工资表,它有金额和金额精度列 使用精度,我想得到实际的数量 请帮助我使用精度计算实际金额。使用。要将整数中的金额转换为十进制 ActualAmount = Amount * 1.0 / Power(10, AmountPrecision) 您可以使用以下查询: select CAST(Amount as double precision) / power(10, AmountPrecision) from AmountTest 假设AmountTest是表的名称。您可以将其替换为

我有一个工资表,它有
金额
金额精度

使用精度,我想得到实际的数量

请帮助我使用精度计算实际金额。

使用。要将
整数中的
金额
转换为
十进制

ActualAmount = Amount * 1.0 / Power(10, AmountPrecision)

您可以使用以下查询:

select CAST(Amount as double precision) / power(10,  AmountPrecision) from AmountTest

假设AmountTest是表的名称。您可以将其替换为您指定的名称。

您也可以通过使用
REPLICATE()
函数创建值来尝试除法

DECLARE @T TABLE (
   Amount INT,
   AmountPrecision INT
) 

INSERT INTO @T VALUES(1,1),(51,1),(51,2),(934,3),(1024,2)
SELECT 
   *,
   CAST(AMOUNT AS FLOAT)/(CONCAT(1,REPLICATE(0,AMOUNTPRECISION))) AS ACTUALAMOUNT
FROM @T
CREATE TABLE Data (id int, AmountPrecision int)
INSERT INTO Data (id, AmountPrecision) VALUES
  (1, 1)
 , (51, 1)
 , (51, 2)
 , (934, 3)
 , (1024, 2)

Select id
   , Cast('1' + REPLICATE('0', AmountPrecision) as int) as DivideBy
   , Cast(id * 1.0 / Cast('1' + REPLICATE('0', AmountPrecision) as int)
   as float) as FormattedNumber
from Data
现场演示