Sql server sql查询返回值问题

Sql server sql查询返回值问题,sql-server,Sql Server,我正在对查询中的值进行多重运算 DECLARE @Rate DECLARE @numeric DECLARE @Result decimal SET @Rate= .01 SET @Result=34750*@Rate print @Result 但它始终将值显示为0 根据我的逻辑,结果应该是347.5 在得到结果347.5之后,我需要将值拆分并插入到2个变量中 像 我在这里做什么请告诉我,任何帮助都会很好 谢谢 Prince您需要定义数字和十进制数据类型的比例和精度 您可以通过强制转换

我正在对查询中的值进行多重运算

DECLARE  @Rate
DECLARE @numeric
DECLARE @Result decimal
SET  @Rate= .01
SET  @Result=34750*@Rate
print @Result
但它始终将值显示为0

根据我的逻辑,结果应该是347.5

在得到结果347.5之后,我需要将值拆分并插入到2个变量中 像

我在这里做什么请告诉我,任何帮助都会很好

谢谢
Prince

您需要定义数字和十进制数据类型的比例和精度

您可以通过强制转换为整数来获得整个零件(但是,我不确定您是否需要INT或FLOOR舍入)。我假设你只需要分数中最重要的一位数字

DECLARE @Rate NUMERIC(18,4)
DECLARE @Result DECIMAL(10,1) 

SET  @Rate= .01 
SET  @Result=34750*@Rate 
PRINT @Result 

DECLARE @IntPart INT
DECLARE @FracPart INT
SET @IntPart = CAST(@Result AS INT)
PRINT @IntPart
SET @FracPart = (@Result - @IntPart) * 10
PRINT @FracPart

您需要定义数字和十进制数据类型的比例和精度

您可以通过强制转换为整数来获得整个零件(但是,我不确定您是否需要INT或FLOOR舍入)。我假设你只需要分数中最重要的一位数字

DECLARE @Rate NUMERIC(18,4)
DECLARE @Result DECIMAL(10,1) 

SET  @Rate= .01 
SET  @Result=34750*@Rate 
PRINT @Result 

DECLARE @IntPart INT
DECLARE @FracPart INT
SET @IntPart = CAST(@Result AS INT)
PRINT @IntPart
SET @FracPart = (@Result - @IntPart) * 10
PRINT @FracPart
试试看

试试看


您将数字和十进制定义为非浮点数

你需要这些类型

decimal(x,y)
numeric(x,y)

其中y-是逗号后的数字量,x-数字中的总数字量

您将数字和十进制定义为非浮点数

你需要这些类型

decimal(x,y)
numeric(x,y)
其中y-是逗号后的位数,x-数字中的总位数

DECLARE  @Rate decimal(18,4)
DECLARE @numeric decimal
DECLARE @Result decimal(18, 4)
DECLARE @Var1 int, @Var2 decimal(18, 4)
SET  @Rate= .01
SET  @Result=34750*@Rate
SET @Var1 = @Result
SET @Var2 = @Result - @Var1
print @Result
print  @Var1
print  @Var2
输出

347.5000
347
0.5000
试试这个

DECLARE  @Rate decimal(18,4)
DECLARE @numeric decimal
DECLARE @Result decimal(18, 4)
DECLARE @Var1 int, @Var2 decimal(18, 4)
SET  @Rate= .01
SET  @Result=34750*@Rate
SET @Var1 = @Result
SET @Var2 = @Result - @Var1
print @Result
print  @Var1
print  @Var2
输出

347.5000
347
0.5000