因此,我有兩個相同的值,它們是具有完全相同長度的和函數的結果(不進行舍入)。 (更新,數據類型爲float)SQL長十進制值比較
_1 = 29.9539194336501 _2 = 29.9539194336501
我遇到的問題是,當我爲_1 = VALUE_2做一個IF語句,它出現爲FALSE。
_1:
SELECT SUM([INVN_DOL])/SUM([AVG_DLY_SLS_LST_35_DYS]) end as DSO
FROM TABLE A
VALUE_2:
SELECT SUM ([Total_Inventory_Val])/SUM ([Daily_Independent_Demand])
FROM TABLE B
任何想法,爲什麼他們可能不完全平等的,我能做些什麼,以獲得真正的價值,因爲它們匹配?
在此先感謝
你確定他們實際上是相同的類型,是平等的嗎?當你將它們投射到varbinary(8)'時會發生什麼? (我假設你理解[原理上是如何工作的](https://stackoverflow.com/q/588004/11683)並且不想使用[an epsilon](https://stackoverflow.com/questions/588004/IS-浮點數學破碎#comment3831071_588014))。 – GSerg
提示:要添加到GSerg的評論,您可以使用['SQL_Variant_Property()'](https://docs.microsoft.com/zh-cn/sql/t-sql/functions/sql-variant-property- transact-sql)來顯示數據類型和相關參數,例如精度和規模,表達。例如:'select SQL_Variant_Property((SELECT SUM([Total_Inventory_Val])/ SUM([Daily_Independent_Demand]) FROM TABLE B),'BaseType');'。 – HABO