t-sql代表百分比的重复十进制值

时间:2018-07-12 10:59:21

标签: tsql

所以我有两列TotalBoxes和BoxesTicked,我的总数是33,勾选的框数是2。

所以2/33给我.06(重复)

T-sql返回0。如何编写T-SQL仅返回.06。

DECLARE @TotalBoxes int
DECLARE @TotalTicked int

SET @TotalBoxes = 33
SET @TotalTicked = 2

PRINT @TotalTicked/@TotalBoxes
PRINT ROUND(@TotalTicked/@TotalBoxes, 4,2)
PRINT CAST(@TotalTicked/@TotalBoxes as DECIMAL(4,2))

TIA。

1 个答案:

答案 0 :(得分:0)

您的两个变量均为INT,SQL Server将其除法显示为INT。如果您可以将它们中的任何一个转换为带小数的数据类型(例如DECIMALNUMERIC),则除法将具有小数。

将整数转换为小数的警告是乘以1.0之类的小数(请注意小数点)。

DECLARE @TotalBoxes int
DECLARE @TotalTicked int

SET @TotalBoxes = 33
SET @TotalTicked = 2

PRINT @TotalTicked * 1.0 /@TotalBoxes
PRINT ROUND(@TotalTicked * 1.0/@TotalBoxes, 4,2)
PRINT CAST(@TotalTicked * 1.0/@TotalBoxes as DECIMAL(4,2))

结果:

0.060606060606
0.060600000000
0.06