Sql 1e8在部门中的重要性

Sql 1e8在部门中的重要性,sql,sql-server-2012,Sql,Sql Server 2012,我试图理解SQL Server 2012中的一个小函数调用。我试图在网上搜索,但找不到太多的信息 函数本身很简单。它有两个参数@value和@default,都是int。当@value为null或0时,此函数DivFix返回@default,否则返回@value本身 在各种SQL语句中调用此函数以避免被零除错误 Select col1 / DivFix(col2,1e8) 我的问题是,1e8在这里代表什么,它如何帮助克服被零除的错误?它意味着10^8(10次方8),因此是100000000。

我试图理解SQL Server 2012中的一个小函数调用。我试图在网上搜索,但找不到太多的信息

函数本身很简单。它有两个参数@value和@default,都是int。当@value为null或0时,此函数
DivFix
返回@default,否则返回@value本身

在各种SQL语句中调用此函数以避免被零除错误

Select col1 / DivFix(col2,1e8)
我的问题是,1e8在这里代表什么,它如何帮助克服被零除的错误?

它意味着10^8(10次方8),因此是100000000。 这是“力量(10,8)”的缩写

从数学的角度来看,这并不是处理“除以0”问题的好方法

使用一个非常小的数字(返回接近无穷大的数值,而不是NaN/a故障)而不是这个非常大的数字(使微积分返回“接近0但不完全正确的数值”,除非最后的四舍五入使其等于0),这将更有意义

它的意思是10^8(10次方8),因此是100000000。 这是“力量(10,8)”的缩写

从数学的角度来看,这并不是处理“除以0”问题的好方法


使用一个非常小的数字(返回接近无穷大的数值,而不是NaN/a故障)而不是这个非常大的数字(使微积分返回“接近0但不完全正确的数值”,除非最后的四舍五入使其等于0),这将更有意义

xEy
x*10^y
的常用缩写。所以
2e8=2*10^8

至于它如何帮助除以零或空:我不知道你的要求是什么
x/0
不是有效的数学运算。在微积分中,结果可以是正无穷大,也可以是负无穷大,这取决于你接近0的方式

目前的意图似乎是使结果成为一个非常小的数字。那么,为什么不定义一个常量或将结果设置为0:

DECLARE @VerySmallNumber float = 1E-8 -- ha! the exponent can be negative too

SELECT IIF(col2 = 0 OR col2 IS NULL, @VerySmallNumber, col1 / col2)

xEy
x*10^y
的常用缩写。所以
2e8=2*10^8

至于它如何帮助除以零或空:我不知道你的要求是什么
x/0
不是有效的数学运算。在微积分中,结果可以是正无穷大,也可以是负无穷大,这取决于你接近0的方式

目前的意图似乎是使结果成为一个非常小的数字。那么,为什么不定义一个常量或将结果设置为0:

DECLARE @VerySmallNumber float = 1E-8 -- ha! the exponent can be negative too

SELECT IIF(col2 = 0 OR col2 IS NULL, @VerySmallNumber, col1 / col2)

为什么不做一个
选择1e8
看看你得到了什么?提示:这是
100000000
为什么不做
选择1e8
看看你得到了什么?提示:这是
100000000
我认为0是一个比“接近无限的东西”更容易处理的错误案例,我认为这是编写该代码的人的意图。当然,的确如此!但从“数学”的意义上讲,它并不真正准确。这取决于预期的结果/行为。只要每个人都意识到这一点,它就可能是好的。我认为0是一个比“接近无限的东西”更容易处理的错误案例,我认为这是编写代码的人的意图。事实上,当然!但从“数学”的意义上讲,它并不真正准确。这取决于预期的结果/行为。只要每个人都意识到这一点,它可能是好的。