我使用SQL Server2005。我在表(ref, column1, column2)
中有三列。第1列和第2列是浮点,ref
为1,column1
为1000,column2
为1000。
select *
from table
where ref = 1 and column1 = column2
返回0行(S(
我将它们转换为十进制,它们是相同的。
它们看起来平等,但是查询回报是否不相等。怎么可能?
编辑:
这是屏幕截图。他们不一样。是什么原因导致了这一点,我该如何修复它?
浮点类型是近似。在比较中使用它的最佳方法是首先将其转换为整数或小数点:
cast(收入为数字(10,2((
,但我要一行运行以下查询。请检查。
DECLARE @TABLE TABLE (REF INT,COLUMN1 FLOAT,COLUMN2 FLOAT)
INSERT INTO @TABLE
SELECT 1,1000,1000
SELECT * FROM @TABLE WHERE REF = 1 and COLUMN1 = COLUMN2
谢谢。